본문 바로가기

머신러닝

Cross Validation

Cross-validation은 rotation estimation 또는 out-of-sample testing이라고도 불리는데, 모델의 일반화 성능을 평가하는 것이다. Cross-validation은 데이터들의 다른 부분들을 학습시켜 테스트하는 것으로 이루어진다. 

 

1. K-fold cross validation

Train data K개의 fold 분할하여 모델 성능을 검증하는 것이다.

데이터를 학습하고 validation 또는 test 다음 k개의 결과에 대해 평균을 내어 최종 성능을 구한다. 이런 식으로 데이터를 구성한다면 우선 모델 평가부분에서 고정된 validation/test set 아니기 때문에 조금 신뢰성 있는 결과를 얻을 있다. 또한, CV 사용하는 가장 이유는 하이퍼파라미터 튜닝인데, ​하나의 validation set 맞추기 위한 튜닝이 아니라 다른 validation set 맞추기 위한 튜닝을 하기 때문에 과적합을 피하는 학습을 있는 것이다.

Train data Validation data 분할에 cross validation 사용한다면, 다양한 validation data 이용해 최적의 model parameter 탐색하기 위함이고, Train data Test data 분할에 cross validation 사용한다면, 다양한 test data 대해 model 성능을 평가하기 위함이다.

 

2. Nested cross validation

Nested cross validation 종류의 cross validation 동시에 사용하여, 효과를 모두 이용할 있다. 우선 Train data Test data K개의 fold 분할한 , fold Train data 다시 N개의 Train-Validation fold 분할한다. , K*N개의 model 생성되는 것이다. outer loop에서는 test set 대한 평가를 inner loop에서는 폴드의 최적 파라미터를 튜닝하는 것이 목적이다.

Nested cross validation 장점은 다양한 경우에 대해 검증-테스트를 거칠 있기 때문에 모델 성능에 대한 신뢰도가 높아지고, 보다 일반화된 모델을 얻을 있다. 특히 데이터의 수가 적거나, 데이터가 매우 상이하여 번의 Validation/Test로는 결과를 신뢰할 없는 경우라면 더욱 효과적일 것이다.

 

참고:

https://bo-10000.tistory.com/entry/Nested-cross-validation?category=1013581 

 

Nested cross validation

흔히 Cross validation은 Train data와 Validation data를, 혹은 Train data와 Test data를 k회 각각 다른 방법으로 분할하여 모델 성능을 검증하는 방법이다. 아래 그림은 5-fold Train-Test cross validation을..

bo-10000.tistory.com

https://blog.naver.com/PostView.nhn?blogId=winddori2002&logNo=221850530979 

 

[바람돌이/머신러닝] 교차검증(CV), Cross Validation, K-fold, TimeSeries 등 CV 종류 및 이론

안녕하세요. 오늘은 머신러닝에서 정말 많이 사용되는 교차검증(Cross Validation)에 대해서 정리하겠습...

blog.naver.com

 

'머신러닝' 카테고리의 다른 글

Feature Selection  (0) 2022.04.24
Principal Component Analysis (PCA)  (0) 2022.04.24
Bias & Variance  (0) 2022.04.24
Regularization  (0) 2022.04.24
Representations of Materials for Machine Learning  (0) 2022.04.24