sábado, 30 de julio de 2016

Importancia de Variables


El siguiente script utiliza el algoritmo ExtraTreesClassifier para calcular la importancia de las variables del dataset titanic sobre la variable survived. En esta nota no se explica el algoritmo ni el calculo de importancia. Esto queda pendiente para una 2da nota.

Para otras métricas de importancia, ver referencia Nro. 1 y 2
Para detalle sobre el algoritmo ExtraTreesClassifier, ver nota Nro.3
Para detalle sobre el calculo de importancia de ExtraTreesClassifier, ver referencia Nro. 4

Conceptualmente el script hace esto:







































script:
import numpy as np
import pandas as pd
from sklearn.ensemble import ExtraTreesClassifier


# CARGAR DATOS
# -------------------------------------------------------------------
dataset = pd.read_csv('https://dl.dropboxusercontent.com/u/59930995/dataset/titanic2.csv?dl=1')
clase_name = 'survived' # nombre de variable a predecir
headers = dataset.columns.values.tolist()
headers.remove(clase_name)
clase   = dataset[clase_name].tolist() # array con variable a predecir
clase   = np.array(clase)


# CONVIERTE DATA.FRAME EN MATRIZ npy
# -------------------------------------------------------------------
dataset = dataset.drop(clase_name,1) # borra la clase del data set
dataset = dataset.as_matrix() # convierte en matriz
dataset = np.matrix(dataset) # convierte en matriz npy


# MODELO
# -------------------------------------------------------------------
model = ExtraTreesClassifier()
model.fit(dataset, clase)


# IMPORTANCIA VARIABLES
# -------------------------------------------------------------------
var_imp = pd.DataFrame({
 'feature':headers, 
 'v_importance':model.feature_importances_.tolist()
 })
print var_imp.sort_values(by = 'v_importance', ascending=False)

Referencia
1. http://machinelearningmastery.com/feature-selection-machine-learning-python/
2. http://blog.datadive.net/selecting-good-features-part-i-univariate-selection/
3. http://www.montefiore.ulg.ac.be/~ernst/uploads/news/id63/extremely-randomized-trees.pdf
4. http://papers.nips.cc/paper/4928-understanding-variable-importances-in-forests-of-randomized-trees.pdf




No hay comentarios:

Publicar un comentario