Regresi linear teratur

Pengurangan Dimensi dengan Python

Jeroen Boeye

Head of Machine Learning, Faktion

Konsep model linear

fitur ke target

Pengurangan Dimensi dengan Python

Membuat dataset kita sendiri

x1 x2 x3
1.76 -0.37 -0.60
0.40 -0.24 -1.12
0.98 1.10 0.77
... ... ...
Pengurangan Dimensi dengan Python

Membuat dataset kita sendiri

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

3 distribusi fitur

Pengurangan Dimensi dengan Python

Membuat dataset kita sendiri

3 distribusi fitur

Membuat fitur target sendiri:

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

Pengurangan Dimensi dengan Python

Regresi linear di 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
Pengurangan Dimensi dengan Python

Regresi linear di Python

# Menghitung R-squared
print(lr.score(X_test, y_test))
0.976
Pengurangan Dimensi dengan Python

Regresi linear di 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]
Pengurangan Dimensi dengan Python

Fungsi loss: Mean Squared Error

prediksi vs. aktual

Pengurangan Dimensi dengan Python

Fungsi loss: Mean Squared Error

prediksi vs. aktual dengan MSE

Pengurangan Dimensi dengan Python

Menambahkan regularisasi

prediksi vs. aktual dengan MSE + rumus

Pengurangan Dimensi dengan Python

Menambahkan regularisasi

prediksi vs. aktual dengan MSE + rumus + anotasi

Pengurangan Dimensi dengan Python

Menambahkan regularisasi

prediksi vs. aktual dengan MSE + rumus + alpha

Pengurangan Dimensi dengan Python

Regressor 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
Pengurangan Dimensi dengan Python

Regressor 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
Pengurangan Dimensi dengan Python

Ayo berlatih!

Pengurangan Dimensi dengan Python

Preparing Video For Download...