본문 바로가기

머신러닝

[Machine Learning] 과적합(Overfitting) , 과소적합(Underfitting) - 분산편향 트레이드오프(Bias/Variance tradeoff)

일반화(generalization)

  • 테스트데이터에서 만들어내는 오차를 일반화 오차라고 부른다.
  • 훈련데이터에서와같이 테스트데이터에서도 좋은 성능을 내는 모델은 일반화가 잘 된 모델이라고 부릅니다.
  • 모델이 너무 훈련데이터에 과하게 학습(과적합)을 하지 않도록 하는 많은 일반화 방법들이 있습니다.

예측모델이 훈련데이터에서보다 테스트데이터에서 오차가 적게 나오기를 기대하지만 현실적으로 모든 데이터를 얻을 수 없기 때문에 훈련데이터로부터 일반화가 잘 되는 모델을 학습시켜야 한다.

 

과적합(Overfitting)

과적합은 모델이 훈련데이터에만 특수한 성질을 과하게 학습해 일반화를 못해 결국 테스트데이터에서 오차가 커지는 현상

overfitting을 해결하는 방법

1. 특성(Feature)의 갯수를 줄여기

  • 주요 특징을 직접 선택하고 나머지는 버린다.
  • Model selection algorithm을 사용한다.

2. 정규화(Regularization) == Ridge Regression(릿지회귀)

  • 모든 특성을 사용하되, 파라미터(세타)의 값을 줄인다.

과소적합(Underfitting)

과소적합은 훈련데이터에 과적합도 못하고 일반화 성질도 학습하지 못해, 훈련/테스트 데이터 모두에서 오차가 크게 나오는 경우

 

 

머신러닝과정 중에서 과적합은 피할 수 없는 문제이고 완전히 극복할 수도 없다. 따라서 대부분 학습알고리즘은 이런 과적합을 완화시킬 수 있는 방법(하이퍼파라미터, 피처셀렉션, 순열중요도 등)을 제공하기 때문에 잘 알아 두어야 한다.

분산/편향 트레이드오프

  • Variance(분산)이 높다 = 과적합 상태
    분산이 높은경우는, 모델이 학습 데이터의 노이즈에 민감하게 적합하여 테스트데이터에서 일반화를 잘 못하는 경우 과적합 상태
  • Bias(편향)이 높다 = 과소적합 상태
    편향이 높은경우는, 모델이 학습 데이터에서, 특성과 타겟 변수의 관계를 잘 파악하지 못해 과소적합 상태
  • 출처)코드스테이츠
  • 출처: https://medium.com/analytics-vidhya/the-dangers-of-under-fitting-and-over-fitting-495f9efa1847
좋은 모델 = Bias도 적고 Variance도 적은 모델
우리가 어떤 모델을 학습시키든 훈련/테스트 데이터에서의 모델의 성능과 그 차이를 보고 과적합과 과소적합을 적절하게 구분해 낼 수 있는 것이 중요

모델검정그래프를 살펴 보면 Model Complexity가 증가 할수록 분산이 높아지고 훈련세트의 스코어는 증가하는데 반해 검증세트의 스코어가 적정 수준 이상이 되면 하락하는것을 볼 수 있다. 이는 과적합이다.