Explicabilitatea în modelele bazate pe arbori

AI Explicabil în Python

Fouad Trad

Machine Learning Engineer

Arbore de decizie

  • Bloc fundamental al modelelor bazate pe arbori
  • Utilizat pentru regresie și clasificare
  • Structură arborescentă pentru predicții
    • Mai multe decizii
    • Fiecare decizie se bazează pe o caracteristică
  • Intrinsec explicabil

Reprezentare a unui arbore de decizie care arată cum se fac predicțiile pe baza mai multor condiții

AI Explicabil în Python

Pădure aleatoare

  • Format din mai mulți arbori de decizie
  • Utilizat pentru regresie și clasificare
  • Complică interpretabilitatea directă
  • Importanța caracteristicilor
    • Măsoară reducerea incertitudinii în predicții
    • Diferit față de coeficienții din modelele liniare

Imagine care prezintă pădurea aleatoare ca o colecție de arbori ce primesc o instanță și agregă predicțiile pentru a obține o predicție finală.

AI Explicabil în Python

Setul de date privind admiterile

GRE Score TOEFL Score University Rating SOP LOR CGPA Accept
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']
AI Explicabil în Python

Antrenarea modelului

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]
AI Explicabil în Python

Importanța caracteristicilor

import matplotlib.pyplot as plt

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

Grafic cu bare orizontale al importanței caracteristicilor, arătând că CGPA și scorul GRE sunt cele mai importante.

import matplotlib.pyplot as plt

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

Grafic cu bare orizontale al importanței caracteristicilor, arătând că CGPA și scorul GRE sunt cele mai importante.

AI Explicabil în Python

Să exersăm!

AI Explicabil în Python

Preparing Video For Download...