일반화(generalization)
- 테스트데이터에서 만들어내는 오차를 일반화 오차라고 부른다.
- 훈련데이터에서와같이 테스트데이터에서도 좋은 성능을 내는 모델은 일반화가 잘 된 모델이라고 부릅니다.
- 모델이 너무 훈련데이터에 과하게 학습(과적합)을 하지 않도록 하는 많은 일반화 방법들이 있습니다.
예측모델이 훈련데이터에서보다 테스트데이터에서 오차가 적게 나오기를 기대하지만 현실적으로 모든 데이터를 얻을 수 없기 때문에 훈련데이터로부터 일반화가 잘 되는 모델을 학습시켜야 한다.
과적합(Overfitting)
과적합은 모델이 훈련데이터에만 특수한 성질을 과하게 학습해 일반화를 못해 결국 테스트데이터에서 오차가 커지는 현상
overfitting을 해결하는 방법
1. 특성(Feature)의 갯수를 줄여기
- 주요 특징을 직접 선택하고 나머지는 버린다.
- Model selection algorithm을 사용한다.
2. 정규화(Regularization) == Ridge Regression(릿지회귀)
- 모든 특성을 사용하되, 파라미터(세타)의 값을 줄인다.
과소적합(Underfitting)
과소적합은 훈련데이터에 과적합도 못하고 일반화 성질도 학습하지 못해, 훈련/테스트 데이터 모두에서 오차가 크게 나오는 경우
머신러닝과정 중에서 과적합은 피할 수 없는 문제이고 완전히 극복할 수도 없다. 따라서 대부분 학습알고리즘은 이런 과적합을 완화시킬 수 있는 방법(하이퍼파라미터, 피처셀렉션, 순열중요도 등)을 제공하기 때문에 잘 알아 두어야 한다.
분산/편향 트레이드오프
- Variance(분산)이 높다 = 과적합 상태
분산이 높은경우는, 모델이 학습 데이터의 노이즈에 민감하게 적합하여 테스트데이터에서 일반화를 잘 못하는 경우 즉 과적합 상태 - Bias(편향)이 높다 = 과소적합 상태
편향이 높은경우는, 모델이 학습 데이터에서, 특성과 타겟 변수의 관계를 잘 파악하지 못해 과소적합 상태
좋은 모델 = Bias도 적고 Variance도 적은 모델
우리가 어떤 모델을 학습시키든 훈련/테스트 데이터에서의 모델의 성능과 그 차이를 보고 과적합과 과소적합을 적절하게 구분해 낼 수 있는 것이 중요