Régression linéaire régularisée

Réduction de dimension en Python

Jeroen Boeye

Head of Machine Learning, Faktion

Principe du modèle linéaire

des variables explicatives vers la cible

Réduction de dimension en Python

Créer notre propre jeu de données

x1 x2 x3
1.76 -0.37 -0.60
0.40 -0.24 -1.12
0.98 1.10 0.77
... ... ...
Réduction de dimension en Python

Créer notre propre jeu de données

x1 x2 x3
1.76 -0.37 -0.60
0.40 -0.24 -1.12
0.98 1.10 0.77
... ... ...

3 distributions de variables explicatives

Réduction de dimension en Python

Créer notre propre jeu de données

3 distributions de variables explicatives

Créons notre variable cible :

$y = 20 + 5x_1 + 2x_2 + 0x_3 + error$

Réduction de dimension en Python

Régression linéaire en Python

from sklearn.linear_model import LinearRegression

lr = LinearRegression()
lr.fit(X_train, y_train)

# Actual coefficients = [5 2 0]
print(lr.coef_)
[ 4.95  1.83 -0.05]
# Actual intercept = 20
print(lr.intercept_)
19.8
Réduction de dimension en Python

Régression linéaire en Python

# Calcule le R-carré
print(lr.score(X_test, y_test))
0.976
Réduction de dimension en Python

Régression linéaire en Python

from sklearn.linear_model import LinearRegression

lr = LinearRegression()
lr.fit(X_train, y_train)

# Actual coefficients = [5 2 0]
print(lr.coef_)
[ 4.95  1.83 -0.05]
Réduction de dimension en Python

Fonction de perte : erreur quadratique moyenne

prédictions vs. valeurs réelles

Réduction de dimension en Python

Fonction de perte : erreur quadratique moyenne

prédictions vs. valeurs réelles avec EQM

Réduction de dimension en Python

Ajouter une régularisation

prédictions vs. valeurs réelles avec EQM + formule

Réduction de dimension en Python

Ajouter une régularisation

prédictions vs. valeurs réelles avec EQM + formule + annotations

Réduction de dimension en Python

Ajouter une régularisation

prédictions vs. valeurs réelles avec EQM + formule + alpha

Réduction de dimension en Python

Régression Lasso

from sklearn.linear_model import Lasso

la = Lasso()
la.fit(X_train, y_train)

# Actual coefficients = [5 2 0]
print(la.coef_)
[4.07 0.59 0.  ]
print(la.score(X_test, y_test))
0.861
Réduction de dimension en Python

Régression Lasso

from sklearn.linear_model import Lasso

la = Lasso(alpha=0.05)
la.fit(X_train, y_train)

# Actual coefficients = [5 2 0]
print(la.coef_)
[ 4.91  1.76 0.  ]
print(la.score(X_test, y_test))
0.974
Réduction de dimension en Python

Passons à la pratique !

Réduction de dimension en Python

Preparing Video For Download...