교차 검증 'Cross Validation'

素人·2022년 1월 2일
0

Data

목록 보기
1/30

우리가 사용할 데이터가 있고, 그 데이터는 label이 있는 train, test set으로 구성되어 있다고 할 때, 고정된 test set을 가지고 모델의 성능을 확인하고 파라미터를 수정하는 과정을 반복하면 결국 내가 만든 모델은 test set에만 잘 동작하는 모델이 된다. 이 경우에는 test set에 과적합(overfitting)되어 다른 실제 데이터를 가지고 예측을 수행하면 당연히 결과는 엉망이다.

'Hold-out'이란?
Hold-out은 단순하게 Train 데이터를 (train, valid 혹은 test)라는 이름의 2개의 데이터로 나누는 작업.

보통 train : valid(test) = 8:2 혹은 7:3의 비율로 데이터를 나눔 (모델이 80% 데이터를 통해서 학습하고 20%의 데이터를 예측함)

하지만, Hold-out은 단순하게 train과 test로 분할함으로써 20%의 데이터는 모델이 학습할 기회도 없이 예측만 하고 버려지게 되는 단점(1)이 있다.
→ '모든 데이터를 학습하게 해보자!, 모든 데이터를 최소한 한 번식 다 학습하게 하자' → 교차 검증을 필요

고정된 train set과 test set으로 평가를 하고, 반복적으로 모델을 튜닝하다보면 test set에만 과적합(단점 2) 되어버리는데 이를 해결하고자 하는 것이 바로 교차 검증(cross validation)이다.

'test set에 과적합 되는 문제'는 test set이 데이터 중 일부분으로 고정되어 있고, 이 일부분의 데이터 셋에 대하여 성능이 잘 나오도록 파라미터를 반복적으로 튜닝하기 때문에 발생한다.
이 문제를 해결하기 위해 교차 검증은 데이터의 모든 부분을 사용하여 모델을 검증하고, test set을 하나로 고정하지 않는다.

교차 검증 과정
전체 데이터 셋을 k개의 subset으로 나누고 k번의 평가를 실행하는데, 이 때 test set을 중복 없이 바꾸어가면서 평가를 진행한다.
k개의 평가 지표를 평균(때에 따라 평균이 아닌 방법을 사용할 수도 있음)내어서 최종적으로 모델의 성능을 평가한다.

교차 검증의 장점과 단점

장점
1) 모든 데이터 셋을 평가에 활용할 수 있음(사용되는 데이터의 편중을 막음으로써 특정 데이터 셋에 overfit되는 것을 방지함)
2) 평가 결과에 따라 좀 더 일반화된 모델을 만들 수 있음
3) 모든 데이터 셋을 훈련에 활용할 수 있기 때문에 정확도를 향상시킬 수 있음
4) 데이터 부족으로 인한 underfitting을 방지 할 수 있음

단점
1) 모든 데이터를 활용하기 때문에 그만큼 모델의 훈련, 평가 시간이 오래 걸림

※출처
https://wooono.tistory.com/105
https://m.blog.naver.com/ckdgus1433/221599517834

profile
매일 조금씩:)

0개의 댓글