본문 바로가기

머신러닝, 딥러닝

혼자 공부하는 머신러닝+딥러닝 4주차

[기본 미션]

Cross Validation이란?

데이터를 train set, test set로 분할하고 모델의 성능을 올바르게 예측하려면 테스트 세트는 모델을 만들고 나서 마지막에 딱 한번만 사용하는 게 좋습니다. 

테스트 세트를 사용하지 않고 모델이 과대적합인지, 과소적합인지 판단하는 간단한 방법은 훈련 세트를 검증 세트로 나누는 겁니다. 훈련 세트:검증 세트:테스트 세트를 6:2:2로 나누는 방법도 있지만, 훈련 세트 자체를 N등분 하여 차례대로 검증 세트로 쓰고, 이 결과를 종합하여 본다면 보다 안정적인 검증 점수를 얻고, 훈련에 더 많은 데이터를 사용할 수 있습니다. 

분류 문제의 경우는 정답 클래스별로 데이터의 비율이 다를 수 있는데요, 데이터를 N등분할 때 각각의 클래스별로 N등분이 담기게 하려면 StratifiedKFold를 사용하면 됩니다. 그러면 훈련할 때 정답 클래스가 불균형하게 섞이는 것을 방지할 수 있습니다. (ex - 화이트와인과 레드 와인 비율이 5:5인 전체 데이터셋에서, 훈련 세트가 화이트와인:레드와인 비율이 9:1이라면, 화이트와인만 찍는 모델이 되기 쉽겠죠? 이러한 현상을 방지합니다.)

[선택 미션]

- 앙상블 모델 손코딩 코랩 화면 인증