Bazele regresiei liniare

Învățare supravegheată cu scikit-learn

George Boorman

Core Curriculum Manager, DataCamp

Mecanica regresiei

  • $y = ax + b$

    • Regresia liniară simplă folosește o singură variabilă

      • $y$ = variabila țintă

      • $x$ = o singură variabilă

      • $a$, $b$ = parametrii/coeficienții modelului - pantă, intersecție

  • Cum alegem $a$ și $b$?

    • Definim o funcție de eroare pentru o dreaptă dată

    • Alegem dreapta care minimizează funcția de eroare

  • Funcție de eroare = funcție de pierdere = funcție de cost

Învățare supravegheată cu scikit-learn

Funcția de pierdere

diagramă de dispersie

Învățare supravegheată cu scikit-learn

Funcția de pierdere

dreaptă de regresie de la stânga-jos la dreapta-sus, prin mijlocul observațiilor

Învățare supravegheată cu scikit-learn

Funcția de pierdere

linii roșii de la dreapta de regresie până la fiecare observație

Învățare supravegheată cu scikit-learn

Funcția de pierdere

liniile roșii reprezintă reziduuri

Învățare supravegheată cu scikit-learn

Funcția de pierdere

săgeată care evidențiază un reziduu pozitiv, observația fiind deasupra dreptei de regresie

Învățare supravegheată cu scikit-learn

Cel mai mic pătrat ordinar

a doua săgeată indicând un reziduu sub dreapta de regresie, reprezentând un reziduu negativ

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

Cel mai mic pătrat ordinar (OLS): minimizează RSS

Învățare supravegheată cu scikit-learn

Regresia liniară în dimensiuni superioare

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

  • Pentru a ajusta un model de regresie liniară:
    • Sunt necesare 3 variabile: $ a_1,\ a_2,\ b $
  • În dimensiuni superioare:
    • Denumită regresie multiplă
    • Trebuie specificați coeficienții pentru fiecare variabilă și termenul $b$

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

  • scikit-learn funcționează la fel:
    • Se transmit două tablouri: variabile și țintă
Învățare supravegheată cu scikit-learn

Regresie liniară folosind toate variabilele

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)
Învățare supravegheată cu scikit-learn

R-pătrat

  • $R^2$: cuantifică varianța valorilor țintă explicată de variabile

    • Valorile sunt între 0 și 1
  • $R^2$ ridicat:

dreaptă de regresie la 45 de grade, de la stânga-jos la dreapta-sus, aproape de toate observațiile

 

 

  • $R^2$ scăzut:

dreaptă de regresie orizontală, cu observațiile dispersate departe de dreaptă

Învățare supravegheată cu scikit-learn

R-pătrat în scikit-learn

reg_all.score(X_test, y_test)
0.356302876407827
Învățare supravegheată cu scikit-learn

Eroarea medie pătratică și rădăcina erorii medii pătratice

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

  • $MSE$ se măsoară în unitățile țintei, la pătrat

 

$RMSE = $ $\sqrt{MSE}$

  • $RMSE$ se măsoară în aceleași unități ca variabila țintă
Învățare supravegheată cu scikit-learn

RMSE în scikit-learn

from sklearn.metrics import root_mean_squared_error

root_mean_squared_error(y_test, y_pred)
24.028109426907236
Învățare supravegheată cu scikit-learn

Să exersăm!

Învățare supravegheată cu scikit-learn

Preparing Video For Download...