Machine Learning/회귀모델

Ridge와 Lasso로 과적합 제어하기 [ Linear Regression (선형회귀모델) 실습 ] [ 보스턴 데이터 ]

leehii 2022. 8. 12. 16:45

 

from sklearn.linear_model import Ridge

 

ridge모델명 = Ridge(alpha=?)

 

 

하이퍼 파라미터 alpha : 규제(= 제어, 정규화)의 정도를 의미한다.

 

해당모델에 똑같이 특성곱을 과하게 넣은 extended_X-_train을 넣고 fit으로 학습하고

 

 

 

alpha로 규제한 Ridge모델과 linear_model을 비교했을때 64 >> 77%로 올라감

 

 

 

 

이런식으로 alpha값에 따라 성능이 달라진다

 

 

Lasso :

 

Linear 모델이 MSE가 최소가 되게 하는 가중치화 절편을 찾았다면

Lasso는 여기에 가중치의 절대값의 합이 최소화되는 추가 제약조건이 있다.

즉 가중치의 값이 0이나, 0에 가깝게 되야함

 

MSE + 패널티 ( = a  * 요소의 절대값)

따라서 이 둘의 합이 최소가 되게 하는 w(가중치)와 b(절편)을 찾는것이 목적

MSE는 오차값이므로 작아질수록 Label과 예측값들의 차이가 작아지고

요소의 절대값이 작아질수록 w들이 0이 되거나 0에 가까워진다

 

알파가 커지면 패널티가 커지므로 요소의 절대값을 작게 만드는 것이 우선시되고

알파가 너무 작으면 MSE를 작아지게 하는것에 비중을 두게된다

Lasso는 w(가중치)가 0이 되게 함으로써 그에 해당하는 특성을 제외, 결과적으로 중요한 특성이 무엇인지 알게된다

 

 

Ridge : 

 

릿지는 라쏘와 거의 유사하나 라쏘와 다르게 가중치가 0에 가까워질뿐  0이 되진않는다

 

 

 

 

from sklearn.linear_model import  Lasso

 

lasso모델명 = Lasso(alpha=?)

.

 

 

 

for문으로 alpha값에 따른 coef (기울기) = w 를 리스트에 담아 확인함

 

lasso는 0이 되지만 ridge는 0에 가까워질뿐 , 0이 되진않는 것이 확인됨