정규화 선형 회귀

Python으로 배우는 차원 축소

Jeroen Boeye

Head of Machine Learning, Faktion

선형 모델 개념

특징에서 타깃으로

Python으로 배우는 차원 축소

데이터셋 직접 만들기

x1 x2 x3
1.76 -0.37 -0.60
0.40 -0.24 -1.12
0.98 1.10 0.77
... ... ...
Python으로 배우는 차원 축소

데이터셋 직접 만들기

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

3개 특징 분포

Python으로 배우는 차원 축소

데이터셋 직접 만들기

3개 특징 분포

타깃 변수 만들기:

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

Python으로 배우는 차원 축소

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
Python으로 배우는 차원 축소

Python에서의 선형 회귀

# Calculates R-squared
print(lr.score(X_test, y_test))
0.976
Python으로 배우는 차원 축소

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]
Python으로 배우는 차원 축소

손실 함수: 평균제곱오차(MSE)

예측값 vs 실제값

Python으로 배우는 차원 축소

손실 함수: 평균제곱오차(MSE)

예측값 vs 실제값과 MSE

Python으로 배우는 차원 축소

정규화 추가하기

예측값 vs 실제값, MSE + 수식

Python으로 배우는 차원 축소

정규화 추가하기

예측값 vs 실제값, MSE + 수식 + 주석

Python으로 배우는 차원 축소

정규화 추가하기

예측값 vs 실제값, MSE + 수식 + alpha

Python으로 배우는 차원 축소

라쏘 회귀기

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
Python으로 배우는 차원 축소

라쏘 회귀기

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
Python으로 배우는 차원 축소

Lass uns üben!

Python으로 배우는 차원 축소

Preparing Video For Download...