OFMY (Ony for me and you)

[파이썬 라이브러리를 활용한 머신러닝] 2.3.2 선형모델 - Ridge 본문

머신러닝/책 리뷰

[파이썬 라이브러리를 활용한 머신러닝] 2.3.2 선형모델 - Ridge

선뭉 2023. 9. 7. 14:14

릿지회귀가 대체 뭘까?

L2 규제를 이용하여 가중치의 절댓값을 가능한 한 작게 만드는 것 = w의 모든 원소가 0에 가깝게 되길 원함 

 

 

그럼 L2규제가 뭔데?

L2 규제 -> 모든 특성이 출력에 주는 영향을 최소한으로 만들어 규제

즉, 기울기를 작게 만드는 것 !

* 기울기 파라미터(w) : 가중치,계수 라고 하며  lr 객체coef_에 저장 되어 있음

 

from sklearn.linear_model import Ridge
ridge = Ridge().fit(X_train, y_train)

print("훈련 세트 점수: {.2f}".format(ridge.scire(X_train, y_train)))
print("테스트 세트 점수: {.2f}".format(ridge.scire(X_test, y_test)))

결과: 훈련 세트 점수: 0.89 / 테스트 세트 점수: 0.75

모델의 복잡도가 낮아지면 훈련세트에서의 성능은 나빠지지만 더 일반화된 모델이 됨
모델을 단순하게 해주고 훈련세트에 대한 성능사이를 절충 시킬 수 있게 됨

 

alpha 매개변수로 훈련 세트의 성능 대비 모델을 얼마나 단순화 할지 지정 가능 (기본값 alpha = 1.0)

 

from sklearn.linear_model import Ridge
ridge10 = Ridge(alpah=10).fit(X_train, y_train)

print("훈련 세트 점수: {.2f}".format(ridge10.scire(X_train, y_train)))
print("테스트 세트 점수: {.2f}".format(ridge10.scire(X_test, y_test)))
from sklearn.linear_model import Ridge
ridge01 = Ridge(alpah=0.1).fit(X_train, y_train)

print("훈련 세트 점수: {.2f}".format(ridge01.scire(X_train, y_train)))
print("테스트 세트 점수: {.2f}".format(ridge01.scire(X_test, y_test)))

 

그렇다면 최적의 alpha 값은 어떻게 찾나? 규제의 효과를 어떻게 이해하지?

 

1. 테스트 세트에 대한 성능이 높아질때까지 alpha 값을 줄일 수 있음
2. alpha 값에 따라 coef_가 어떻게 달라지는지를 조사해보기

3. alpha 값을 고정하고 훈련 데이터의 크기를 변화시켜 보기