Explicabilidade em modelos lineares

IA explicável em Python

Fouad Trad

Machine Learning Engineer

Modelos lineares

Regressão linear
  • Prevê valores contínuos

Imagem mostrando uma linha que se ajusta a vários pontos; eixo x: nota de teste; eixo y: chance de admissão.

IA explicável em Python

Modelos lineares

Regressão linear
  • Prevê valores contínuos

Imagem mostrando uma linha que se ajusta a vários pontos; eixo x: nota de teste; eixo y: chance de admissão.

Regressão logística
  • Usada para classificação binária

Imagem mostrando uma linha que separa vários pontos que representam transações por valor e horário de execução.

IA explicável em Python

Por que modelos lineares são explicáveis?

  • Aprendem uma combinação linear das features
  • $c_0 + c_1 \times \text{feature}_1 + c_2 \times \text{feature}_2 + \ldots + c_n \times \text{feature}_n$

Imagem com os mesmos gráficos de regressão linear e logística, com as equações: regressão linear aprende Preço do celular=푐_0+푐_1∗Armazenamento, e regressão logística aprende 푐_0+푐_1∗Hora do dia+푐_2∗Valor da transação=0

IA explicável em Python

Coeficientes

  • Indicam a importância de cada feature
    • Valor absoluto maior → mais importante
    • Valor absoluto menor → menos importante
  • Para comparar coeficientes → valores absolutos
  • Atenção: Normalize as escalas antes de calcular os coeficientes

Imagem mostrando a equação Preço do celular=푐_0+5∗Armazenamento+2∗Número de lentes, destacando os coeficientes

IA explicável em Python

Coeficientes

  • Indicam a importância de cada feature
    • Valor absoluto maior → mais importante
    • Valor absoluto menor → menos importante
  • Para comparar coeficientes → valores absolutos
  • Atenção: Normalize as escalas antes de calcular os coeficientes

Imagem mostrando a equação Preço do celular=𝑐_0+𝑐_1∗Armazenamento+c_2∗Número de lentes, destacando que Armazenamento costuma estar nas centenas a milhares de GB e número de lentes é geralmente < 4.

IA explicável em Python

Admissões

GRE TOEFL Nota da universidade SOP LOR CGPA Chance de admissão Aceito
337 118 4 4.5 4.5 9.65 0.92 1
324 107 4 4 4.5 8.87 0.76 1
316 104 3 3 3.5 8 0.72 1
322 110 3 3.5 2.5 8.67 0.8 1
314 103 2 2 3 8.21 0.45 0
X_train = data.drop(['Chance of Admit', 'Accept'], axis=1)

y_reg = data['Chance of Admit']
y_cls = data['Accept']
IA explicável em Python

Treino do modelo

from sklearn.preprocessing import MinMaxScaler
from sklearn.linear_model import LinearRegression, LogisticRegression


scaler = MinMaxScaler() X_train_scaled = scaler.fit_transform(X_train)
lin_reg = LinearRegression() lin_reg.fit(X_train_scaled, y_reg)
log_reg = LogisticRegression() log_reg.fit(X_train_scaled, y_cls)
IA explicável em Python

Calculando coeficientes

Regressão linear
print(lin_reg.coef_)
[0.03052087 0.01665433 0.00668971 
 0.00326926 0.01724815 0.0661691 ]
Regressão logística
print(log_reg.coef_)
[[1.28985577  0.49441086  0.47593379 
  0.05434322  0.41800927  1.31980189]]
IA explicável em Python

Visualizando coeficientes

Regressão linear
import matplotlib.pyplot as plt
plt.bar(X_train.columns, lin_reg.coef_)

Um gráfico de barras das importâncias mostrando que CGPA e GRE são as features mais importantes.

Regressão logística
import matplotlib.pyplot as plt
plt.bar(X_train.columns, log_reg.coef_[0])

Um gráfico de barras das importâncias mostrando que CGPA e GRE são as features mais importantes.

IA explicável em Python

Vamos praticar!

IA explicável em Python

Preparing Video For Download...