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 |