새로운 data들에 대해서도 좋은 결과를 내게 하려면?
data가 1000개 있는데, 1000개를 모두 train data로 쓰면 overfitting이 난다.
60% train data로 모델 학습
20% validation data 로 모델을 최적화 / 선택 (Tune)
20% test data로 모델을 평가 (tet only, no more tune)
6:2:2 / 7:3 뿐만 아니라 98:1:1과 같이 쪼개기도 한다. in 딥러닝 , 데이터가 많기에!
1. 100만건의 데이터에서 1%여도 1만건이 넘어감
2. 우리나라의 미취학 아동의 심리발달 200만명을 대상으로 분석을 할 때 과거의 6:2:2에서는 그 중 2000명의 sample을 뽑았음. 그럴 경우에는 2000명을 다 외우면 overfitting이 일어나지만, 딥러닝에서는 2000만중 198만을 외운다면 전체 분포정보가 내재되어 있기에 외워도 된다.
K : 우리가 결정하는 갑쇼 / 보통 '5'나 '10' => 10 - Fold CV
이때 총 n가지의 model 후보군이 있다.
1번 model로 9개의 train data를 학습 후, validation data로 채점
이후, 모델을 초기화해서 각각의 validation data를 달리해서 10번의 train, test를 실시함
10번의 반복 후, 채점 결과를 평균을 내면 그것이 하나의 모델의 성능
모든 model에 같은 행위를 반복 => 가장 성능이 높은 model 선택
해당 모델 초기화 => 기존의 10개로 쪼갰던 80%의 data 전체를 학습
20% data로 채점
그 결과값이 해당 모델의 학습 결과
<data 불균형을 없애는 방법>
딥러닝에 쓰이는 알고리즘
data augmentation : 증가 (데이터 증강 - 무언가를 강화함, 뻥튀기)
- if 이미지 data : data에 살짝씩 변화를 줘서 더 많은 이미지로 만듦
<undersampling, oversampling>