Regularized linear regression

Riduzione della dimensionalità in Python

Jeroen Boeye

Head of Machine Learning, Faktion

Linear model concept

features to target

Riduzione della dimensionalità in Python

Creating our own 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

Creating our own dataset

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

3 feature distributions

Riduzione della dimensionalità in Python

Creating our own dataset

3 feature distributions

Creating our own target feature:

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

Riduzione della dimensionalità in Python

Linear regression in 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
Riduzione della dimensionalità in Python

Linear regression in Python

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

Linear regression in 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]
Riduzione della dimensionalità in Python

Loss function: Mean Squared Error

predicted vs. actual

Riduzione della dimensionalità in Python

Loss function: Mean Squared Error

predicted vs. actual with MSE

Riduzione della dimensionalità in Python

Adding regularization

predicted vs. actual with MSE + formula

Riduzione della dimensionalità in Python

Adding regularization

predicted vs. actual with MSE + formula + annotated

Riduzione della dimensionalità in Python

Adding regularization

predicted vs. actual with MSE + formula + alpha

Riduzione della dimensionalità in Python

Lasso regressor

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
Riduzione della dimensionalità in Python

Lasso regressor

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
Riduzione della dimensionalità in Python

Let's practice!

Riduzione della dimensionalità in Python

Preparing Video For Download...