Vysvětlitelnost v modelech založených na stromech

Explainable AI v Pythonu

Fouad Trad

Machine Learning Engineer

Rozhodovací strom

  • Základní stavební blok stromových modelů
  • Používá se pro regresi a klasifikaci
  • Stromová struktura pro předpovědi
    • Série rozhodnutí
    • Každé rozhodnutí vychází z jednoho příznaku
  • Inherentně vysvětlitelný

Schéma rozhodovacího stromu znázorňující předpovědi na základě více podmínek

Explainable AI v Pythonu

Náhodný les

  • Skládá se z mnoha rozhodovacích stromů
  • Používá se pro regresi a klasifikaci
  • Ztěžuje přímou interpretovatelnost
  • Důležitost příznaků
    • Měří snížení nejistoty v předpovědích
    • Liší se od koeficientů v lineárních modelech

Schéma náhodného lesa jako souboru stromů, které přijmou vstup a agregují předpovědi do výsledné predikce.

Explainable AI v Pythonu

Dataset přijímacího řízení

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']
Explainable AI v Pythonu

Trénování modelu

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 v Pythonu

Důležitost příznaků

import matplotlib.pyplot as plt

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

Vodorovný sloupcový graf důležitostí příznaků, kde CGPA a skóre GRE jsou nejdůležitější.

import matplotlib.pyplot as plt

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

Vodorovný sloupcový graf důležitostí příznaků, kde CGPA a skóre GRE jsou nejdůležitější.

Explainable AI v Pythonu

Pojďme si procvičit!

Explainable AI v Pythonu

Preparing Video For Download...