2021. 6. 10. 22:32ㆍ머신러닝
앞서 설명했던 AIC, BIC, SRM과 같은 기준값을 활용하는 것보다 더 활발하게 활용되고 있는 모형 선택 방법은 Cross-Validation입니다.
가장 적용하기가 용이하고, 유연하게 활용할 수 있으므로 많은 사람들이 선호하는 방법입니다. 특히 Likelihood나 추정한 Parameter나 error에 대한 분포를 확인하기 어려운 경우에도 활용할 수 있다는 장점이 있습니다.
[K-Fold Cross-Validation]
데이터가 충분하다면 K-fold Cross-Validation은 가장 많이 적용되고 있는 방법론입니다. 데이터를 비슷한 사이즈의 K그룹으로 나누어서 검증하는 방안입니다.
예를 들어 데이터를 {A,B,C,D,E} 5개 그룹으로 나눈다면, {A,B,C,D} 데이터로 학습하고 {E} 데이터로 검증하고 {A,B,C,E} 데이터로 학습하고 {D} 데이터로 검증하는 방식입니다.
이 때, Cross-Validation Error는 아래와 같습니다.
i번째 x가 속한 Group을 제외한 데이터로 학습한 모델을 활용하여 i번째 x데이터 예측값과 실제값의 오차를 측정하는 것입니다.
[Leave-one-out Cross-Validation]
leave-one-out cross-validation은 말 그대로 validation data가 하나인 경우입니다. 따라서 Group수 K가 Sample 수 N과 동일한 K-Fold로 간주할 수 있습니다. 따라서 Fitting 해야 할 모델도 N개가 되기 때문에 데이터 셋이 클 경우 바람직하지 않다고 볼 수 있습니다.
다만, 많은 모델들을 Fitting해보고 검증할 수 있으므로서 K-Fold보다 조금 더 나은 정확성을 제공할 수 있다고 합니다. 다만 Outlier에 의해 결과값의 변동성이 커질 수 있는 위험이 있습니다.
종합적으로 봤을 때, 실질적으로 K-Fold보다 많이 쓰인다고 보이는 어려울 것습니다.
Cross-Validation은 모델의 성능을 평가하기 위해 정말 좋은 방법이지만, Validation, Test 셋을 그룹화할 때 데이터가 극도로 Imbalanced 되어 있거나 Random하지 않게 그룹화 된다면 정확한 측정이 되지 않는 위험이 있습니다. 예를 들어 종속변수가 소득수준일때 A그룹은 10대만 Selection 되고 B그룹은 30대만 Selection 된다면 모형을 검증하기가 어려울 것입니다.
[Stratified k-fold cross-validation]
Imbalanced된 데이터에서 효과적으로 K 그룹을 만들기 위해서 계층별 k-fold cross-validation을 수행합니다. 이는 우리가 가지고 있는 Sampled에서의 Class Label 비율과 동일하게 Cross-validation을 하기 위한 그룹을 만들어주는 것입니다. 따라서 이는 분류문제에 대해 Cross-Validation을 적용할 때 많이 적용하게 됩니다.
'머신러닝' 카테고리의 다른 글
Generalized Additive Models(GAM) (0) | 2021.08.15 |
---|---|
모델 평가 및 선정 > Bootstrap Method (0) | 2021.06.28 |
모델 평가 및 선정 > In-Sample Prediction(2/2) (0) | 2021.05.30 |
모델 평가 및 선정 > In-Sample Prediction (0) | 2021.05.13 |
모델 평가 및 선정 > Bias, Variance (0) | 2021.05.06 |