오답노트
[ML] 복잡도와 과적합 본문
복잡도
모델의 복잡도는 train 데이터의 패턴을 반영하는 정도이다.
알고리즘 마다 복잡도를 조절하는 방법은 다르다.
모델의 복잡도가 높다고 무조건 성능이 좋은 모델이라고 할 수 없다.
과적합
복잡도가 높아질 수록 과적합이 나타나기 쉽다. 그렇다고 복잡도가 너무 낮으면 접합도가 너무 낮아 예측을 제대로 못 할 가능성이 크다. 즉 적절한 적합도를 찾아야 성능이 좋은 모델을 만든다고 볼 수 있다.
그렇다면 어떻게 해야 적절한 적합도를 찾을 수 있을까?
위 그래프는 복잡도가 증가함에 따라 train과 validation 데이터에 대한 Accuracy 변화량을 표현한 그래프이다.
복잡도가 커짐에 따라 train 데이터의 Accuracy는 1에 가까워져 더 정확한 예측을 하지만, validation 데이터의 Accuracy 는 계속 낮아진다.
모델링 단계에서 복잡도가 클 수록 train에만 맞는 모델이 된다는 의미가 된다.
적절한 모델링을 하기 위해선 적절한 복잡도가 필요하다.
그 기준은 대체로
1. train 데이터와 validation 데이터가 급격하게 차이가 나는 구간
2. validation 데이터의 Accuracy 의 고점
3. 그 중에서 가장 단순한 모델
에서 선택한다. 위 그래프에서는 3에서 5사이의 복잡도가 가장 알맞아보인다.
'Python > ML' 카테고리의 다른 글
[ML] Bagging - Random Forest (0) | 2022.08.25 |
---|---|
[ML] 앙상블 - Bagging (0) | 2022.08.25 |
[ML] Learning Curve (데이터 늘리기, Bias 줄이기) (0) | 2022.08.25 |
[ML] k-fold Cross Validation (0) | 2022.08.25 |
[ML] HyperParameter Tuning (0) | 2022.08.24 |