Dasar-dasar regresi linear

Supervised Learning dengan scikit-learn

George Boorman

Core Curriculum Manager, DataCamp

Mekanika regresi

  • $y = ax + b$

    • Regresi linear sederhana memakai satu fitur

      • $y$ = target

      • $x$ = satu fitur

      • $a$, $b$ = parameter/koefisien model - kemiringan, intersep

  • Bagaimana memilih $a$ dan $b$?

    • Definisikan fungsi galat untuk setiap garis

    • Pilih garis yang meminimalkan fungsi galat

  • Fungsi galat = fungsi loss = fungsi biaya

Supervised Learning dengan scikit-learn

Fungsi loss

diagram pencar

Supervised Learning dengan scikit-learn

Fungsi loss

garis regresi dari kiri bawah ke kanan atas, melalui tengah observasi

Supervised Learning dengan scikit-learn

Fungsi loss

garis merah dari garis regresi ke tiap observasi

Supervised Learning dengan scikit-learn

Fungsi loss

garis merah mewakili residual

Supervised Learning dengan scikit-learn

Fungsi loss

panah menyorot residual positif, karena observasi di atas garis regresi

Supervised Learning dengan scikit-learn

Ordinary Least Squares

panah kedua menunjuk residual di bawah garis regresi, mewakili residual negatif

$RSS = $ $\displaystyle\sum_{i=1}^{n}(y_i-\hat{y_i})^2$

Ordinary Least Squares (OLS): meminimalkan RSS

Supervised Learning dengan scikit-learn

Regresi linear pada dimensi lebih tinggi

$$ y = a_{1}x_{1} + a_{2}x_{2} + b$$

  • Untuk memfitting model regresi linear di sini:
    • Tentukan 3 variabel: $ a_1,\ a_2,\ b $
  • Pada dimensi lebih tinggi:
    • Disebut regresi berganda
    • Harus menentukan koefisien tiap fitur dan variabel $b$

$$ y = a_{1}x_{1} + a_{2}x_{2} + a_{3}x_{3} +... + a_{n}x_{n}+ b$$

  • scikit-learn bekerja dengan cara yang sama:
    • Berikan dua array: fitur dan target
Supervised Learning dengan scikit-learn

Regresi linear dengan semua fitur

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
reg_all = LinearRegression()
reg_all.fit(X_train, y_train)
y_pred = reg_all.predict(X_test)
Supervised Learning dengan scikit-learn

R-squared

  • $R^2$: mengukur varians nilai target yang dijelaskan oleh fitur

    • Nilai berkisar 0 sampai 1
  • $R^2$ tinggi:

garis regresi 45 derajat dari kiri bawah ke kanan atas dan dekat semua observasi

 

 

  • $R^2$ rendah:

garis regresi mendatar, observasi menyebar jauh dari garis

Supervised Learning dengan scikit-learn

R-squared di scikit-learn

reg_all.score(X_test, y_test)
0.356302876407827
Supervised Learning dengan scikit-learn

Mean squared error dan root mean squared error

$MSE = $ $\displaystyle\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y_i})^2$

  • $MSE$ diukur dalam satuan target, dikuadratkan

 

$RMSE = $ $\sqrt{MSE}$

  • $RMSE$ diukur dalam satuan yang sama dengan variabel target
Supervised Learning dengan scikit-learn

RMSE di scikit-learn

from sklearn.metrics import root_mean_squared_error

root_mean_squared_error(y_test, y_pred)
24.028109426907236
Supervised Learning dengan scikit-learn

Ayo berlatih!

Supervised Learning dengan scikit-learn

Preparing Video For Download...