Spiegabilità nei modelli lineari

Explainable AI in Python

Fouad Trad

Machine Learning Engineer

Modelli lineari

Regressione lineare
  • Predice valori continui

Immagine con una retta che adatta più punti; l’asse x è un punteggio di test e l’asse y è la probabilità di ammissione.

Explainable AI in Python

Modelli lineari

Regressione lineare
  • Predice valori continui

Immagine con una retta che adatta più punti; l’asse x è un punteggio di test e l’asse y è la probabilità di ammissione.

Regressione logistica
  • Usata per classificazione binaria

Immagine con una retta che separa punti che rappresentano transazioni in base all’importo e all’ora di esecuzione.

Explainable AI in Python

Perché i modelli lineari sono spiegabili?

  • Imparano una combinazione lineare delle feature
  • $c_0 + c_1 \times \text{feature}_1 + c_2 \times \text{feature}_2 + \ldots + c_n \times \text{feature}_n$

Immagine con gli stessi grafici di regressione lineare e logistica di prima, ma con l’equazione appresa: la regressione lineare apprende un’equazione del tipo Prezzo smartphone=푐_0+푐_1∗Storage, e la regressione logistica una del tipo 푐_0+푐_1∗Ora del giorno+푐_2∗Importo transazione=0

Explainable AI in Python

Coefficienti

  • Indicano l’importanza di ogni feature
    • Valore assoluto più alto → maggiore importanza
    • Valore assoluto più basso → minore importanza
  • Per confrontare i coefficienti → valori assoluti
  • Nota: normalizza le scale delle feature prima di calcolare i coefficienti

Immagine con l’equazione Prezzo smartphone=푐_0+5∗Storage+2∗Numero di lenti, con i coefficienti evidenziati

Explainable AI in Python

Coefficienti

  • Indicano l’importanza di ogni feature
    • Valore assoluto più alto → maggiore importanza
    • Valore assoluto più basso → minore importanza
  • Per confrontare i coefficienti → valori assoluti
  • Nota: normalizza le scale delle feature prima di calcolare i coefficienti

Immagine che mostra l’equazione Prezzo smartphone=𝑐_0+𝑐_1∗Storage+c_2∗Numero di lenti, evidenziando che gli Storage sono in centinaia/migliaia di GB e il numero di lenti è di solito < 4.

Explainable AI in Python

Ammissioni

Punteggio GRE Punteggio TOEFL Valutazione università SOP LOR CGPA Probabilità di ammissione Accetto
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']
Explainable AI in Python

Training dei modelli

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)
Explainable AI in Python

Calcolo dei coefficienti

Regressione lineare
print(lin_reg.coef_)
[0.03052087 0.01665433 0.00668971 
 0.00326926 0.01724815 0.0661691 ]
Regressione logistica
print(log_reg.coef_)
[[1.28985577  0.49441086  0.47593379 
  0.05434322  0.41800927  1.31980189]]
Explainable AI in Python

Visualizzare i coefficienti

Regressione lineare
import matplotlib.pyplot as plt
plt.bar(X_train.columns, lin_reg.coef_)

Un grafico a barre delle importanze mostra che CGPA e punteggio GRE sono le feature più importanti.

Regressione logistica
import matplotlib.pyplot as plt
plt.bar(X_train.columns, log_reg.coef_[0])

Un grafico a barre delle importanze mostra che CGPA e punteggio GRE sono le feature più importanti.

Explainable AI in Python

Passons à la pratique !

Explainable AI in Python

Preparing Video For Download...