본문 바로가기

데이터분석/이론

[머신러닝 개념]모형의 적합성 평가 및 실험 설계

-간단한 모형일수록 under fitting(학습, 실제 data 모두 잘 안 맞음), 복잡한 모형일수록 over fitting됨(학습 data는 잘 맞지만 실제 data는 안 맞음)

 

 

 

데이터 분할

 

-과적합 방지를 위해 전체 data를 training & test(보통 8:2, 7:3) 또는 trainig & validation & test(보통 5:3:2, 4:3:3)으로 랜덤하게 나눔

-학습용 데이터(training data): 모형을 추정

-검증용 데이터(validataion data): 추정한 모형이 적합한지 검증

-테스트 데이터(test data): 최종 모형의 성능을 평가

-validation data로 k값(hypher parameter)을 조정함(=> validation data에 over fitting이 일어남)

-3가지로 나누는 게 좋고, hypher parameter가 없거나 고정되어있으면 2가지로 나눠도 됨

-데이터의 수가 많을 때 사용

-단점: 어떤 데이터는 학습용 데이터에 분류되지 않을 수도 있음

 

 

K-fold 교차검증(k-fold Cross Validation)

 

-모형의 적합성을 객관적으로 평가하기 위한 방법

-data를 k개(보통 5 or 10)로 나눈 뒤, 그중 하나를 검증(validation), 나머지를 학습(training) 집합으로 분류

-이 과정을 k번 반복 후 k개의 성능 지표의 평균으로 모형의 적합성 평가

-데이터의 수가 애매한 경우 많이 쓰임

-모든 data가 학습, 예측용으로 쓰임

 

 

LOOCV(Leave-One-Out Cross Validataion)

 

-k-fold 교차검증과 비슷한 개념으로 데이터의 수가 적을 때 사용

-n(data의 수)개의 model을 만들어 각 모델에서 하나의 sample만 제외하여 모델을 만들고, 제외한 sample로 성능 지표 계산

-이렇게 계산된 n개의 성능 지표의 평균을 최종 성능 지표로 사용

 

 


 

데이터 분석 과정

 

1. data 전처리

  -data 병합, Y에 영향을 미치는 변수를 생각하여 목적에 맞게 파생변수 생성

  -model의 성능을 높이는 방법

2. 실험설계

  -class imbalance한 경우(모비율이 0.5에 가깝지 않은 경우): 학습 데이터, 검증 데이터 각각을 모비율에 맞춰서 sampling(층화 추출)

3. model

 

 

과적합(Over fitting)

 

-학습 데이터엔 잘 맞으나 검증, 실제 데이터엔 잘 안 맞음

-복잡한 모형일 때, 데이터가 적을 때 과적합이 일어나기 쉬움

-데이터가 매우 많으면 복잡한 모형이어도 괜찮음

-ex. 앙상블 모델-low bias&high variance

-적절한 모형 선택과 실험 설계를 통해 과적합 방지