Importancia por permutación

IA explicable en Python

Fouad Trad

Machine Learning Engineer

Barajar notas para medir la importancia del instrumento

Imagen que muestra una banda de músicos tocando distintos instrumentos.

IA explicable en Python

Importancia por permutación

  • Método independiente del modelo
  • Evalúa la importancia de las características
    • Mide el efecto de barajar la característica en el rendimiento
  • Muy versátil

Imagen que muestra la estructura de una red neuronal: varias capas ocultas, cada una con múltiples neuronas.

IA explicable en Python

Importancia por permutación en acción

Imagen que muestra un dataset con 5 características y un modelo ya entrenado.

IA explicable en Python

Importancia por permutación en acción

Imagen que muestra el dataset pasado al modelo para obtener el rendimiento base.

IA explicable en Python

Importancia por permutación en acción

Imagen que muestra que una característica se baraja: en el original sus valores eran [1, 2, 3, 4] y tras barajar quedan [4, 2, 1, 3]. El dataset barajado se pasa al modelo para obtener el rendimiento barajado.

IA explicable en Python

Importancia por permutación en acción

Imagen que muestra que la importancia de la característica barajada es proporcional a la caída de rendimiento.

IA explicable en Python

Importancia por permutación en acción

Imagen que muestra que una gran caída indica alta importancia de esa característica, y una caída pequeña sugiere menor importancia.

IA explicable en Python

Dataset de admisiones

GRE Score TOEFL Score University Rating SOP LOR CGPA Chance of Admit Accept
337 118 4 4.5 4.5 9.65 0.92 1
324 107 4 4 4.5 8.87 0.76 1
316 104 3 3 3.5 8 0.72 1
322 110 3 3.5 2.5 8.67 0.8 1
314 103 2 2 3 8.21 0.45 0

 

Los datos están en: X_train, y_train

IA explicable en Python

MLPClassifier

from sklearn.neural_network import MLPClassifier
model = MLPClassifier(hidden_layer_sizes=(10,10))

model.fit(X_train, y_train)
IA explicable en Python

Importancia por permutación

from sklearn.inspection import permutation_importance

result = permutation_importance(model,
X_train, y_train,
n_repeats=10,
random_state=42,
scoring='accuracy')
print(result.importances_mean)
[0.16213568 0.13831658 0.10575377 0.10522613 0.11741206 0.20072864]
IA explicable en Python

Visualizar la importancia

import matplotlib.pyplot as plt
plt.bar(X_train.columns,
        result.importances_mean)

Gráfico de barras de importancias por permutación que muestra que CGPA tiene la mayor importancia.

IA explicable en Python

Comparación con métodos específicos del modelo

import matplotlib.pyplot as plt
plt.bar(X_train.columns, 
        result.importances_mean)

Gráfico de barras de importancias por permutación que muestra que CGPA tiene la mayor importancia.

Regresión logística
plt.bar(X_train.columns, np.abs(log_reg.coef_[0]))

Gráfico de barras de coeficientes de regresión logística que muestra que CGPA tiene la mayor importancia.

IA explicable en Python

¡Vamos a practicar!

IA explicable en Python

Preparing Video For Download...