티스토리 뷰

728x90

위에서 새로운 특성을 기존의 특성을 거듭제곱해 만들었다. 왜 세제곱이나 네제곱이 아닌 거듭제곱일까? 즉 차수를 어떻게 정해야할까? 가장 간단한 방법은 반복 실험을 통해 알아보는 것이다. 즉 교차 검증을 통해 확인하면 된다. 또 다른 방법이 있다. 학습 곡선을 이용하면 된다. 학습 곡선은 train set과 valid set의 모델의 성능을 train set의 크기의 함수로 나타낸 것이다. 무슨 말인가? 그림으로 보자.

즉 점점 train set의 크기를 늘려가며(training set의 크기를 1, 2, 3, ... 점점 더 추가하면서 테스트) 모델을 훈련시키면서 동시에 valid set으로 모델의 성능을 평가하는 것이다.

 

코드로 구현하면 아래와 같다.

여기까지는 좋다. 하지만 이 다음에 무엇을 해야하는가? 여태까지 모델의 성능을 RMSE로 측정했다. 그래프를 보면 RMSE가 대략 1.8에 머물러 있다. valid set에서의 RMSE를 0에 가깝게 하는 것이 목표다. 동시에 train set에서의 RMSE와의 차이가 크면 안된다.(크면 과대적합)

그래프를 보면 위의 그래프보다 데이터 셋에서의 RMSE 낮고 곡선의 차이는 크다. 과대적합된 것을 알 수 있다.

 

다시 정리하면, 학습 곡선에서 RMSE는 당연히 작을수록, 두 곡선의 차이도 작을수록 더 나은 모델이다.

댓글