데이터 전처리와 모델 검증의 오류
좋은 성능의 모델이 실제 적용 데이터에는 좋은 성능을 내지 못하는 경우들을 볼 수 있습니다.
이유는 다양하게 존재 할 수 있습니다. 분석 데이터가 충분하지 못하든지, 적용 데이터가 분석때와는 다르다던지, 단순 프로세스 상의 에러 발생 등 예상하지 못한 원인들이 있을 것 입니다.
이번 포스팅에서는 그런 원인들중 데이터 전처리와 모델 검증에 대한 오류에 대해 이야기 해보려
합니다. 데이터 마이닝에서는 분석 데이터를 두 개의 셋으로 분리 하여 진행 하게 됩니다. 모델링
작업을 하는 학습용(Training)과 모델의 성능을 평가하는 검증용(Validation)으로 구분 짓게 되는데, 다시말해 모델링 작업에는 오직 학습용 데이터의 정보만을 가지고 작업되어야 한다는 것입니다.
아래 프로세스를 보면 Sonar라고 하는 분석 데이터를 읽어서 Cross Validation 방법으로 모델을
만들고 평가하는 방법을 사용 하였습니다. 그리고 각 항목의 단위가 다르기에 중간에 정규화
(평균 0, 표준편차 1) 를 통해 전처리 작업을 하였습니다.
2-NN을 사용하여 accuracy 84%의 성능을 갖는 모델을 만들었습니다. 우리는 Normalize라는 Operator의 작업 과정을 생각해 볼 필요가 있습니다. 정규화 작업을 위해서는 반드시 전체 데이터의 평균과 표준편차가 필요하게 됩니다. 그렇다면 위의 Process에서 데이터를 두 개의 셋으로 구분하기 전에 작업된 정규화는 검증용 데이터의 정보도 들어가져 있음을 알 수 있습니다.
다음 프로세스를 보면 정규화 작업을 Cross Validation 안의 Training part에 넣어 진행하고 만들어진 정규화식을 Testing data에 적용하여 변환 후 모델을 검증하도록 하였습니다.
첫 번째 Process와는 다르게 학습용 데이터의 정보만을 가지고 정규화 작업을 진행해서 모델링 및
검증 했음을 알 수 있습니다.
결국 첫 번째 방법 보다는 두 번째 방법이 좀 더 데이터를 순수하게 구분하여 검증 작업을 진행하게 하기에 실 데이터 예측 시 에러율을 조금 더 낮추는 방법이 될 수 있을 것 입니다.
이 방법이 무조건 옮다고는 할 수 없지만 데이터 전처리와 모델 검증의 관계에 대해서 한 번 더 고민하는 기회였음 합니다.