Aprendizaje de árboles de clasificación

Machine learning con modelos basados en árboles en Python

Elie Kawerk

Data Scientist

Bloques básicos de un árbol de decisión

  • Árbol de decisión: estructura de datos con una jerarquía de nodos.

  • Nodo: pregunta o predicción.

Machine learning con modelos basados en árboles en Python

Bloques básicos de un árbol de decisión

Tres tipos de nodos:

  • Raíz: sin nodo padre, pregunta que genera dos nodos hijos.

  • Nodo interno: un nodo padre, pregunta que genera dos nodos hijos.

  • Hoja: un nodo padre, sin nodos hijos --> predicción.

Machine learning con modelos basados en árboles en Python

Predicción

Árbol con etiquetas

Machine learning con modelos basados en árboles en Python

Ganancia de información (IG)

Diagrama de IG

Machine learning con modelos basados en árboles en Python

Ganancia de información (IG)

Fórmula de IG

Criterios para medir la impureza de un nodo $I (node)$:

  • índice gini,
  • entropía. ...
Machine learning con modelos basados en árboles en Python

Aprendizaje de árboles de clasificación

  • Los nodos crecen de forma recursiva.

  • En cada nodo, divide los datos según:

    • la característica $f$ y el punto de corte $sp$ que maximizan $IG(\text{node})$.
  • Si $IG (\text{node})$ = 0, declara el nodo como hoja.

    ...

Machine learning con modelos basados en árboles en Python
# Import DecisionTreeClassifier
from sklearn.tree import DecisionTreeClassifier
# Import train_test_split
from sklearn.model_selection import train_test_split
# Import accuracy_score
from sklearn.metrics import accuracy_score
# Split dataset into 80% train, 20% test
X_train, X_test, y_train, y_test= train_test_split(X, y, 
                                                   test_size=0.2, 
                                                   stratify=y,
                                                   random_state=1)
# Instantiate dt, set 'criterion' to 'gini'
dt = DecisionTreeClassifier(criterion='gini', random_state=1)
Machine learning con modelos basados en árboles en Python

Criterio de información en scikit-learn

# Fit dt to the training set
dt.fit(X_train,y_train)

# Predict test-set labels
y_pred= dt.predict(X_test)

# Evaluate test-set accuracy
accuracy_score(y_test, y_pred)
0.92105263157894735
Machine learning con modelos basados en árboles en Python

¡Vamos a practicar!

Machine learning con modelos basados en árboles en Python

Preparing Video For Download...