한빛미디어 도서 <혼자 공부하는 머신러닝+딥러닝>의 전개를 따른 내용이다.
이번에 배울 내용은 "선형회귀모델의 규제"이다.
챕터 3, 회귀 알고리즘과 모델 규제
| 다중 회귀, 과대적합 피하기
* 지도 학습 알고리즘의 한 종류인 회귀 알고리즘 배우기
* 다양한 선형 회귀 알고리즘의 장단점 이해하기
특성수를 너무 늘려서 다중회귀 모델을 학습시키면 과대적합 문제가 일어날 수 있다고 배웠다.
(과소적합을 피하려고 특성수를 늘리랬더니 머시라고!!!!)
근데 과대적합도 피할 수 있다 ㅇㅅㅇ 뜨든~~
오늘은 그걸 배운댯
# 규제
- 모델이 train set에 과대적합되지 않도록 하는 것
- ex) 선형회귀모델에서는 특성에 곱해지는 계수를 작게 만들면 된다.
특성 수를 너무 늘리면 과대적합시킬 수 있다.
특성을 억지로 많이 늘려서 일단 과대적합시키자.
그리고 규제를 실습해보는 거다!
선형회귀모델에서 규제를 하려면, 특성에 곱해지는 계수를 작게 하면 된다고 했다.
계수를 작게 하기 전에 반드시 체크!
모든 특성이 스케일링이 되었는가?
스케일링은 여기서 공부했다 : 데이터 전처리 | 스케일 조정, 표준화하여 전처리 | 표준점수로 변환
계수를 조작하여 공정히 control하기 위해서는 꼭 특성의 정규화가 필요하다.
예전 실습 때는 직접 표준화하여 스케일링했지만, 이번에는 사이킷런에서 제공하는 클래스의 도움을 받자.
StandardScaler 클래스를 사용할 것이다.
얘도 변환기의 일종이라서 fit()과 transform 메서드를 사용할 것이다.
특성의 표준화 완료!
# 이제 규제할 준비를 마쳤다.
선형 회귀 모델에 규제를 추가한 모델을 만들자!
규제를 가하는 방식에 따라서 두가지 모델이 있다.
두 방법 모두 계수를 줄이는 방식이다.
- 릿지(ridge) - 일반적으로 선호함
- 라쏘(lasso) - 계수가 0이 될 수 있음
(사이킷런이 제공)
# 릿지 회귀
릿지 클래스도 역시 사이킷런 모델이라서 fit, score 메서드를 이용한다.
얼마나 규제하느냐는 alpha 속성으로 조절할 수 있다.
alpha값이 크면 규제를 세게 하는 것이다.
단, 이 alpha값은 "모델이 최적으로 결정하지 않는다!!!!!"
이전에 배웠던 모델 파라미터와는 다르게 모델이 알아서 결정해주지 않는다.
사용자가 직접 적절한 값을 입력해주어야 한다. "하이퍼 파라미터"라고 한다.
alpha값은 0.1로 설정해야함을 알 수 있다!
그럼 그렇게 설정해서 최종 모델 훈련 고...
과대적합, 과소적합 문제를 피했다!!!!!
둘다 피하기 위해서 얼마나 많은 지식이 스쳐갔는쥐..!
ㅇㅅㅇ 신기..
# 라쏘 회귀
같은 방식으로 라쏘모델도 훈련시켜서 결과를 보자.
마찬가지로 적절한 alpha값을 찾아내자.
얼만큼 규제하는게 최적인지 확인해보기 위해!
최적의 alpha값은 10인 것을 확인가능하다.
그러면 alpha를 10으로 해서 라쏘모델을 훈련시켜보자.
이번에도 마찬가지로, 과대적합/과소적합 문제를 피했다!
++ 라쏘 모델은 계수를 0으로 만드는 것이 가능했다.
확인해보자.
55개의 특성 중 40개의 계수가 0이라는 것은, 라쏘모델이 15개의 특성만 사용했다는 것이다.
=> 유용한 특성만을 골라내고 싶을 때 라쏘 모델을 활용하면 좋겠다.
# 이번 내용 정리
- 과소적합을 피하려고 회귀모델이 학습하는 특성 수를 늘렸더니 과대적합 문제를 일으킬 수 있다.
- 선형회귀모델의 과대적합을 피하려면 규제 모델을 이용하면 된다.
- 선형회귀모델에서 규제란 계수를 작게 만드는 방법이다. 좀 더 완만하게 한다고 해야하나!
- 규제 모델에는 릿지/라쏘 회귀가 있다.
- 규제 강도를 조정하기 위해 alpha라는 '하이퍼 파라미터'를 직접 설정한다.
- 라쏘 특징 : 계수가 0이 될 수 있다.
이전 글:
'데이터분석과 머신러닝' 카테고리의 다른 글
로지스틱 회귀 | 선형방정식이 확률p가 되는 과정은? (0) | 2022.01.28 |
---|---|
머신러닝 | 로지스틱 회귀모델 | 이진/다중분류 (0) | 2022.01.27 |
머신러닝 | 특성 수를 늘려 과소적합 피하기 - 다중회귀와 특성 공학 (2) | 2022.01.23 |
혼공단 7기 2주차 미션인증 (0) | 2022.01.23 |
머신러닝 | 선형 회귀 알고리즘 (k-최근접이웃 알고리즘과 비교) (0) | 2022.01.22 |