Verklaarbaarheid in lineaire modellen

Explainable AI in Python

Fouad Trad

Machine Learning Engineer

Lineaire modellen

Lineaire regressie
  • Voorspelt continue waarden

Afbeelding met een lijn die meerdere punten benadert; de x-as is een testscore en de y-as de kans op toelating.

Explainable AI in Python

Lineaire modellen

Lineaire regressie
  • Voorspelt continue waarden

Afbeelding met een lijn die meerdere punten benadert; de x-as is een testscore en de y-as de kans op toelating.

Logistische regressie
  • Gebruikt voor binaire classificatie

Afbeelding met een lijn die meerdere datapunten scheidt (transacties) op basis van transactiebedrag en tijdstip.

Explainable AI in Python

Waarom zijn lineaire modellen verklaarbaar?

  • Leren lineaire combinatie van inputfeatures
  • $c_0 + c_1 \times \text{feature}_1 + c_2 \times \text{feature}_2 + \ldots + c_n \times \text{feature}_n$

Afbeelding met dezelfde grafieken voor lineaire en logistische regressie als eerder, maar nu met de geleerde vergelijking: lineaire regressie leert Mobiele prijs=푐_0+푐_1∗Opslag, en logistische regressie leert 푐_0+푐_1∗Tijdstip+푐_2∗Transactiebedrag=0

Explainable AI in Python

Coëfficiënten

  • Geven het belang van elke feature aan
    • Hogere absolute waarde → meer belang
    • Lagere absolute waarde → minder belang
  • Vergelijk coëfficiënten → absolute waarden
  • Let op: normaliseer featureschalen vóór het berekenen van coëfficiënten

Afbeelding met de vergelijking Mobiele prijs=푐_0+5∗Opslag+2∗Aantal lenzen, met nadruk op de coëfficiënten

Explainable AI in Python

Coëfficiënten

  • Geeft het belang van elke feature aan
    • Hogere absolute waarde → meer belang
    • Lagere absolute waarde → minder belang
  • Vergelijk coëfficiënten → absolute waarden
  • Let op: normaliseer featureschalen vóór het berekenen van coëfficiënten

Afbeelding met de vergelijking Mobiele prijs=𝑐_0+𝑐_1∗Opslag+𝑐_2∗Aantal lenzen, met nadruk dat opslaggroottes meestal honderden tot duizenden gigabytes zijn en het aantal lenzen meestal minder dan 4.

Explainable AI in Python

Toelatingen

GRE-score TOEFL-score Universiteitsrating SOP LOR CGPA Kans op toelating Geaccepteerd
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

Modeltraining

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

Coëfficiënten berekenen

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

Coëfficiënten visualiseren

Lineaire regressie
import matplotlib.pyplot as plt
plt.bar(X_train.columns, lin_reg.coef_)

Een staafdiagram van de belangrijkheden waaruit blijkt dat CGPA en GRE-score de belangrijkste features zijn.

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

Een staafdiagram van de belangrijkheden waaruit blijkt dat CGPA en GRE-score de belangrijkste features zijn.

Explainable AI in Python

Laten we oefenen!

Explainable AI in Python

Preparing Video For Download...