Wyjaśnialność modeli drzewiastych

Wyjaśnialne AI w Pythonie

Fouad Trad

Machine Learning Engineer

Drzewo decyzyjne

  • Podstawowy element modeli drzewiastych
  • Stosowany do regresji i klasyfikacji
  • Struktura drzewiasta do prognozowania
    • Szereg decyzji
    • Każda decyzja opiera się na jednej cesze
  • Inherentnie wyjaśnialny

Reprezentacja drzewa decyzyjnego pokazująca, jak prognozy są tworzone na podstawie wielu warunków

Wyjaśnialne AI w Pythonie

Las losowy

  • Składa się z wielu drzew decyzyjnych
  • Stosowany do regresji i klasyfikacji
  • Utrudnia bezpośrednią interpretowalność
  • Ważność cech
    • Mierzy redukcję niepewności w prognozach
    • Różni się od współczynników w modelach liniowych

Ilustracja przedstawiająca las losowy jako zbiór drzew, które otrzymują instancję i agregują prognozy w celu uzyskania finalnego wyniku.

Wyjaśnialne AI w Pythonie

Zbiór danych o przyjęciach

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']
Wyjaśnialne AI w Pythonie

Trenowanie 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]
Wyjaśnialne AI w Pythonie

Ważność cech

import matplotlib.pyplot as plt

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

Poziomy wykres słupkowy ważności cech pokazujący, że CGPA i wynik GRE są najważniejszymi cechami.

import matplotlib.pyplot as plt

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

Poziomy wykres słupkowy ważności cech pokazujący, że CGPA i wynik GRE są najważniejszymi cechami.

Wyjaśnialne AI w Pythonie

Czas na ćwiczenia!

Wyjaśnialne AI w Pythonie

Preparing Video For Download...