Spiegabilità nei modelli ad alberi

Explainable AI in Python

Fouad Trad

Machine Learning Engineer

Albero decisionale

  • Blocco fondamentale dei modelli ad alberi
  • Usato per regressione e classificazione
  • Struttura ad albero per le previsioni
    • Più decisioni
    • Ogni decisione usa una feature
  • Intrinsecamente spiegabile

Rappresentazione di un albero decisionale che mostra come le previsioni derivano da più condizioni

Explainable AI in Python

Random forest

  • Composto da molti alberi decisionali
  • Usato per regressione e classificazione
  • Rende l’interpretazione diretta più difficile
  • Importanza delle feature
    • Misura la riduzione dell’incertezza nelle previsioni
    • Diversa dai coefficienti nei modelli lineari

Immagine che mostra la random forest come insieme di alberi che ricevono un'istanza e aggregano le previsioni per dare una previsione finale.

Explainable AI in Python

Dataset ammissioni

Punteggio GRE Punteggio TOEFL Valutazione università SOP LOR CGPA Accettato
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']
Explainable AI in Python

Addestramento del modello

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]
Explainable AI in Python

Importanza delle feature

import matplotlib.pyplot as plt

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

Un grafico a barre orizzontali delle importanze che mostra CGPA e punteggio GRE come feature più importanti.

import matplotlib.pyplot as plt

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

Un grafico a barre orizzontali delle importanze che mostra CGPA e punteggio GRE come feature più importanti.

Explainable AI in Python

Passiamo alla pratica!

Explainable AI in Python

Preparing Video For Download...