Regressione lineare con regolarizzazione

Riduzione della dimensionalità in Python

Jeroen Boeye

Head of Machine Learning, Faktion

Concetto di modello lineare

dalle feature al target

Riduzione della dimensionalità in Python

Creare il nostro dataset

x1 x2 x3
1.76 -0.37 -0.60
0.40 -0.24 -1.12
0.98 1.10 0.77
... ... ...
Riduzione della dimensionalità in Python

Creare il nostro dataset

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

distribuzioni di 3 feature

Riduzione della dimensionalità in Python

Creare il nostro dataset

distribuzioni di 3 feature

Creiamo la nostra variabile target:

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

Riduzione della dimensionalità in Python

Regressione lineare in Python

from sklearn.linear_model import LinearRegression

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

# Coefficienti reali = [5 2 0]
print(lr.coef_)
[ 4.95  1.83 -0.05]
# Intercetta reale = 20
print(lr.intercept_)
19.8
Riduzione della dimensionalità in Python

Regressione lineare in Python

# Calcola R-quadro
print(lr.score(X_test, y_test))
0.976
Riduzione della dimensionalità in Python

Regressione lineare in Python

from sklearn.linear_model import LinearRegression

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

# Coefficienti reali = [5 2 0]
print(lr.coef_)
[ 4.95  1.83 -0.05]
Riduzione della dimensionalità in Python

Funzione di perdita: Mean Squared Error

predetto vs. reale

Riduzione della dimensionalità in Python

Funzione di perdita: Mean Squared Error

predetto vs. reale con MSE

Riduzione della dimensionalità in Python

Aggiungere la regolarizzazione

predetto vs. reale con MSE + formula

Riduzione della dimensionalità in Python

Aggiungere la regolarizzazione

predetto vs. reale con MSE + formula + annotazioni

Riduzione della dimensionalità in Python

Aggiungere la regolarizzazione

predetto vs. reale con MSE + formula + alpha

Riduzione della dimensionalità in Python

Regressore Lasso

from sklearn.linear_model import Lasso

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

# Coefficienti reali = [5 2 0]
print(la.coef_)
[4.07 0.59 0.  ]
print(la.score(X_test, y_test))
0.861
Riduzione della dimensionalità in Python

Regressore Lasso

from sklearn.linear_model import Lasso

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

# Coefficienti reali = [5 2 0]
print(la.coef_)
[ 4.91  1.76 0.  ]
print(la.score(X_test, y_test))
0.974
Riduzione della dimensionalità in Python

Esercitiamoci!

Riduzione della dimensionalità in Python

Preparing Video For Download...