Explicabilidad en modelos basados en árboles

IA explicable en Python

Fouad Trad

Machine Learning Engineer

Árbol de decisión

  • Bloque fundamental de los modelos basados en árboles
  • Sirve para regresión y clasificación
  • Estructura en árbol para predecir
    • Varias decisiones
    • Cada decisión se basa en una característica
  • Intrínsecamente explicable

Representación de un árbol de decisión que muestra cómo se hacen predicciones según varias condiciones

IA explicable en Python

Bosque aleatorio

  • Consta de muchos árboles de decisión
  • Sirve para regresión y clasificación
  • Dificulta la interpretabilidad directa
  • Importancia de características
    • Mide la reducción de incertidumbre en las predicciones
    • Diferente a los coeficientes en modelos lineales

Imagen que muestra el random forest como un conjunto de árboles que reciben una instancia y agregan las predicciones para dar una predicción final.

IA explicable en Python

Conjunto de datos de admisiones

Puntuación GRE Puntuación TOEFL Valoración de la universidad SOP LOR CGPA Admisión
337 118 4 4.5 4.5 9.65 1
324 107 4 4 4.5 8.87 1
316 104 3 3 3.5 8.00 1
322 110 3 3.5 2.5 8.67 1
314 103 2 2 3 8.21 0
X_train = data.drop(['Accept'], axis=1)
y_train = data['Accept']
IA explicable en Python

Entrenamiento del modelo

from sklearn.tree import DecisionTreeClassifier

tree_model = DecisionTreeClassifier() tree_model.fit(X_train, y_train)
print(tree_model.feature_importances_)
[0.17936982 0.08878744 0.04388924 
 0.0532897  0.07130751 0.56335628]
from sklearn.ensemble import RandomForestClassifier

forest_model = RandomForestClassifier() forest_model.fit(X_train, y_train)
print(forest_model.feature_importances_)
[0.25347149 0.17518662 0.06551317 
 0.06758647 0.07866478 0.35957747]
IA explicable en Python

Importancia de características

import matplotlib.pyplot as plt

plt.barh(X_train.columns, 
         tree_model.feature_importances_)
plt.title('Feature Importance - Decision Tree')
plt.show()

Gráfico de barras horizontal que muestra que CGPA y la puntuación GRE son las características más importantes.

import matplotlib.pyplot as plt

plt.barh(X_train.columns, 
         forest_model.feature_importances_)
plt.title('Feature Importance - Random Forest')
plt.show()

Gráfico de barras horizontal que muestra que CGPA y la puntuación GRE son las características más importantes.

IA explicable en Python

¡Vamos a practicar!

IA explicable en Python

Preparing Video For Download...