Regresie liniară regularizată

Reducerea dimensionalității în Python

Jeroen Boeye

Head of Machine Learning, Faktion

Conceptul modelului liniar

caracteristici către țintă

Reducerea dimensionalității în Python

Crearea propriului set de date

x1 x2 x3
1.76 -0.37 -0.60
0.40 -0.24 -1.12
0.98 1.10 0.77
... ... ...
Reducerea dimensionalității în Python

Crearea propriului set de date

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

distribuțiile celor 3 caracteristici

Reducerea dimensionalității în Python

Crearea propriului set de date

distribuțiile celor 3 caracteristici

Crearea propriei variabile țintă:

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

Reducerea dimensionalității în Python

Regresie liniară în 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
Reducerea dimensionalității în Python

Regresie liniară în Python

# Calculates R-squared
print(lr.score(X_test, y_test))
0.976
Reducerea dimensionalității în Python

Regresie liniară în 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]
Reducerea dimensionalității în Python

Funcție de pierdere: Eroarea pătratică medie

valori prezise vs. reale

Reducerea dimensionalității în Python

Funcție de pierdere: Eroarea pătratică medie

valori prezise vs. reale cu EPM

Reducerea dimensionalității în Python

Adăugarea regularizării

valori prezise vs. reale cu EPM + formulă

Reducerea dimensionalității în Python

Adăugarea regularizării

valori prezise vs. reale cu EPM + formulă + adnotări

Reducerea dimensionalității în Python

Adăugarea regularizării

valori prezise vs. reale cu EPM + formulă + alpha

Reducerea dimensionalității în Python

Regresorul 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
Reducerea dimensionalității în Python

Regresorul 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
Reducerea dimensionalității în Python

Să exersăm!

Reducerea dimensionalității în Python

Preparing Video For Download...