Explicabilidade em modelos baseados em árvores

IA explicável em Python

Fouad Trad

Machine Learning Engineer

Árvore de decisão

  • Bloco fundamental de modelos em árvore
  • Usado para regressão e classificação
  • Estrutura de árvore para prever
    • Várias decisões
    • Cada decisão usa uma variável
  • Naturalmente explicável

Representação de uma árvore de decisão mostrando como previsões são feitas com base em múltiplas condições

IA explicável em Python

Random forest

  • Conjunto de muitas árvores de decisão
  • Usada para regressão e classificação
  • Dificulta interpretação direta
  • Importância de variáveis
    • Mede a redução da incerteza nas previsões
    • Diferente de coeficientes em modelos lineares

Imagem mostrando a random forest como um conjunto de árvores que recebem uma instância e agregam as previsões para dar uma previsão final.

IA explicável em Python

Conjunto de admissões

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']
IA explicável em Python

Treinamento do modelo

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]
IA explicável em Python

Importância de variáveis

import matplotlib.pyplot as plt

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

Um gráfico de barras horizontal das importâncias mostrando que CGPA e pontuação GRE são as variáveis mais importantes.

import matplotlib.pyplot as plt

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

Um gráfico de barras horizontal das importâncias mostrando que CGPA e pontuação GRE são as variáveis mais importantes.

IA explicável em Python

Vamos praticar!

IA explicável em Python

Preparing Video For Download...