Split Vs Cross Validation
Data Mining 에서 Validation, 즉 만든 모델에 대한 성능을 평가하는 작업은 굉장히 중요합니다.
만들어진 결과에 따라 모델을 사용 여부까지 판단할 수 있기 때문입니다.
이번 포스팅에서는 모델 검증 방법중 가장 일반적인 Split 과 Cross 에 대해 이야기 해보고자 합니다.
데이터 검증은 기본적으로 분석용 데이터를 학습용과 검증용으로 구분 한 뒤 학습 데이터에
알고리즘을 적용하여 모델을 만들고 해당 모델을 검증용에 적용하여 예측 값과 실제 값을 비교하여 성능을 검증하게 됩니다.
1. Split Validation
Split은 데이터를 분리 해서 검증 하는 가장 기본적인 방법입니다. 설정된 옵션에 의해서 비율 이나 직접 데이터의 수를 입력하여 하나의 분석 데이터를 학습용과 검증용으로 분리 한 후에 학습용
데이터를 통해 모델링 작업을 하고 만들어진 모델을 검증용에 돌려서 성능을 체크하는 Operator
입니다. 이때 학습용 데이터를 선택하는 방법으로는 랜덤하게 선택 되는 Shuffle, 데이터 입력된
순서대로 선택되는 Linear, 타겟 변수에 대한 비율에 맞춰서 랜덤하게 선택되는 Stratified 방법이
있습니다. (이는 대부분의 샘플링에서 동일하게 적용되는 옵션 )
2. Cross Validation
Split 방법의 가장 큰 문제점은 데이터의 사이즈가 크지 않을 때 Sampling에 의한 모델 성능의
차이가 크게 발생할 수 있다는 것입니다. 또한 모델링과 검증 작업에 모든 데이터의 정보가 들어가지 못한다는 문제도 있습니다. 이 부분을 보완하기 위해서 Cross Validation은 데이터를 k개로 나눈 뒤 하나의 Block을 검증용으로 나머지를 학습용으로 하여 모델링 및 검증 작업을 진행하고, 다시 다른 Block을 검증용으로 나머지를 학습용으로 하여 k번 반복하여 진행 하게 됩니다. Cross 방법은 모든 데이터에 대해서 모델 검증을 할 수 있다는 장점이 있지만 데이터 양이 많고 k 값도 커지게 되면
작업에 소요되는 시간이 많을 수 있습니다.
( leave one out 옵션은 k 값을 전체 데이터 사이즈로 설정하는 메뉴 입니다. 즉 1개의 데이터를 검증용으로 나머지는 학습용으로 데이터 사이즈 만큼 반복하는 옵션입니다. )
두 개의 방법중 어떤 것이 좋은지는 누구도 판단할 수 없을 것 입니다. 다만 각각의 방법이
의미하는 바를 이해하고 데이터의 크기나 시스템 환경등을 고려하여 선택 하는 것은 분석가의 몫이 될 것 입니다.