
좋은 모델이란?
현재 데이터(training data)를 잘 설명하는 모델이자 미래 데이터(testing data)에 대한 예측 성능이 좋은 모델
Explanatory modeling + Predictive modeling
현재 데이터를 잘 설명하는 모델이란 학습 에러를 최소화 하는 모델이다. 즉 트레이닝 에러를 최소화 하는 모델을 만들어야 한다.
Expected MSE를 전개해보면, 크게
아래 첫 번째 이미지는 과녁 중앙에 흩어짐 없이 잘 모여있는 그림이다. 두 번째 그림은 중앙 과녁에 잘 맞은거 같으면서도 중앙을 중심으로 분포되어 있다.

위 그림에서 가장 좋은 경우와 가장 나쁜 경우의 그림은 무엇일까? 당연히 가장 좋은 경우는 첫 번째 그림이고, 가장 나쁜 경우는 네번 째 그림이다. 그럼 두 번째, 세 번째 그림 중 더 나은건 무엇인가?
미래 데이터 (testing data)에 대한 예측 성능이 좋은 모델은 미래 데이터 에 대한
를 낮추는 방법은 뭘까?
Subset selection method
Subset selection method 는 전체 p개의 설명변수(X) 중 일부 k 개만을 사용하여 회귀 계수
- Best subset selection
- Forward stepwise selection
- Backward stepwise elimination
- Least angle regression
- Orthogonal matching pursuit
정규화 개념

위 데이터를 예측하는 모델에서 가장 좋은 모델은 중앙에 있는 모델이다. 가장 우측에 모든 데이터를 정확하게 예측한 모델이 더 좋아 보일 수 있지만 그렇지 않다.

위 그림은 차수의 증가에 따른 에러 패턴이다. Training 관점에서 보면 차수가 증가하면 증가할수록 에러가 확연히 줄어드는 것을 볼 수 있다. 하지만 Testing 관점에서 보면 차수가 증가함에 따라 에러 값이 감소하다가 특정 차수 이후에 에러가 다시 증가하는 것을 볼 수 있다.
Traing, Testing의 에러가 모두 큰 경우는
Training 관점에서는 에러가 매우 작지만, Testing 관점에서는 에러가 매우 큰 상황이다. 이 때는
가장 좋은 모델은 Training, Testing 관점에서 모두 에러가 최소화된 구간의 모델이 가장 좋은 모델일 것이다.
만약, Over-fitting된 모델에서 Variance는 조금 낮춤으로써 좋은 모델로 변화시키는 방법이 무엇일까? 아래와 같은 모델이 존재한다고 가정하다.
여러 가지 방법 중 간단하게 최소제곱법에서 뒤에
이 처럼 파라미터에 페널티를 줌으로써 모델의 변화를 이루자는 것이 정규화(Regularization)의 주된 컨셉이다.
(1) Training accuracy :
(2) Generalization accuracy :
만약
즉, 정규화 방법은 회귀 계수
이러한 제약 조건에 따라 다양한 방법이 존재한다. Ridge, Lasso, ElasticNet 등에 대한 방법은 다시 정리해본다.
참고자료
https://www.youtube.com/watch?v=pJCcGK5omhE&list=PLpIPLT0Pf7IoTxTCi2MEQ94MZnHaxrP0j&index=26
https://en.wikipedia.org/wiki/Regularization_%28mathematics%29
'AI > Machine Learning' 카테고리의 다른 글
데이터 불균형 - Under Sampling (1) | 2023.09.24 |
---|---|
의사결정 나무 (Decision Tree) 예측, 분류 정리 (0) | 2023.04.01 |
[Machine Learning] 차원축소 - #1 PCA (0) | 2023.03.27 |
[Agent] Software Agent Architecture (0) | 2018.10.28 |
[Agent] Communication (0) | 2018.10.28 |