Explicabilité des modèles linéaires

IA explicable en Python

Fouad Trad

Machine Learning Engineer

Modèles linéaires

Régression linéaire
  • Prédit des valeurs continues

Image montrant une droite ajustant plusieurs points, avec le score de test en abscisse et la probabilité d’admission en ordonnée.

IA explicable en Python

Modèles linéaires

Régression linéaire
  • Prédit des valeurs continues

Image montrant une droite ajustant plusieurs points, avec le score de test en abscisse et la probabilité d’admission en ordonnée.

Régression logistique
  • Pour la classification binaire

Image montrant une droite séparant des points représentant des transactions selon le montant et l’heure d’exécution.

IA explicable en Python

Pourquoi les modèles linéaires sont-ils explicables ?

  • Apprennent une combinaison linéaire des variables d’entrée
  • $c_0 + c_1 \times \text{feature}_1 + c_2 \times \text{feature}_2 + \ldots + c_n \times \text{feature}_n$

Image montrant les mêmes graphes de régression linéaire et logistique qu’avant, avec l’équation apprise : la régression linéaire apprend Prix du mobile=푐_0+푐_1∗Stockage, et la régression logistique apprend 푐_0+푐_1∗Heure de la journée+푐_2∗Montant de la transaction=0

IA explicable en Python

Coefficients

  • Donnent l'importance de chaque variable
    • Valeur absolue plus élevée → importance plus élevée
    • Valeur absolue plus faible → importance plus faible
  • Pour comparer les coefficients → valeurs absolues
  • Remarque : Normaliser les échelles des variables avant de calculer les coefficients

Image montrant l’équation Prix du mobile=푐_0+5∗Stockage+2∗Nombre d’objectifs, mettant en évidence les coefficients

IA explicable en Python

Coefficients

  • Indiquent l'importance de chaque variable
    • Valeur absolue plus élevée → importance plus élevée
    • Valeur absolue plus faible → importance plus faible
  • Pour comparer les coefficients → valeurs absolues
  • Remarque : Normaliser les échelles avant de calculer les coefficients

Image montrant l’équation Prix du mobile=𝑐_0+𝑐_1∗Stockage+c_2∗Nombre d’objectifs, soulignant que le stockage est en centaines à milliers de Go et le nombre d’objectifs est généralement < 4.

IA explicable en Python

Admissions

Score GRE Score TOEFL Classement université SOP LOR CGPA Prob. d’admission Accepté
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 explicable en Python

Entraînement des modèles

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 explicable en Python

Calcul des coefficients

Régression linéaire
print(lin_reg.coef_)
[0.03052087 0.01665433 0.00668971 
 0.00326926 0.01724815 0.0661691 ]
Régression logistique
print(log_reg.coef_)
[[1.28985577  0.49441086  0.47593379 
  0.05434322  0.41800927  1.31980189]]
IA explicable en Python

Visualiser les coefficients

Régression linéaire
import matplotlib.pyplot as plt
plt.bar(X_train.columns, lin_reg.coef_)

Un histogramme des importances montrant que le CGPA et le score GRE sont les variables les plus importantes.

Régression logistique
import matplotlib.pyplot as plt
plt.bar(X_train.columns, log_reg.coef_[0])

Un histogramme des importances montrant que le CGPA et le score GRE sont les variables les plus importantes.

IA explicable en Python

Passons à la pratique !

IA explicable en Python

Preparing Video For Download...