🌌 Deep Learning/평가

Nested cross validation

복만 2021. 10. 1. 13:31

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

 

 

아래 그림은 5-fold Train-Test cross validation을 설명하고 있다.

 

https://www.analyticsvidhya.com/blog/2021/03/a-step-by-step-guide-to-nested-cross-validation/

 

 

Train data와 Validation data의 분할에 cross validation을 사용한다면, 다양한 validation data를 이용해 최적의 model parameter을 탐색하기 위함이고,

 

Train data와 Test data의 분할에 cross validation을 사용한다면, 다양한 test data에 대해 model의 성능을 평가하기 위함이다.

 

 


 

Nested Cross validation은 두 종류의 cross validation을 동시에 사용하여, 두 효과를 모두 이용할 수 있다.

 

우선 Train data와 Test dataK개의 fold로 분할한 뒤,

각 fold의 Train data를 다시 N개의 Train-Validation fold로 분할한다.

즉, 총 K*N개의 model이 생성되는 것이다.

 

Train data와 Test data의 분할을 outer fold라고 하고,

Train data와 Test data의 분할을 inner fold라고 한다.

 

아래 그림에서는 5개의 outer fold가 존재하고, 4개의 inner fold가 존재한다.

이 경우 총 20개의 model이 생성된다.

 

https://www.analyticsvidhya.com/blog/2021/03/a-step-by-step-guide-to-nested-cross-validation/

 

Nested cross validation의 장점은 다양한 경우에 대해 검증-테스트를 거칠 수 있기 때문에 모델 성능에 대한 신뢰도가 높아지고, 보다 일반화된 모델을 얻을 수 있다는 것이다.

특히 데이터의 수가 적거나, 각 데이터가 매우 상이하여 한 번의 Validation/Test로는 결과를 신뢰할 수 없는 경우라면 더욱 효과적일 것이다.

 

그러나 일반적인 K-fold cross validation 역시 K회의 반복이 필요하기 때문에 시간이 많이 소요되는데, nested cross validation은 cross validation을 중첩하여 사용하기 때문에 훨씬 더 많은 시간이 소요된다는 단점이 있다.

반응형

'🌌 Deep Learning > 평가' 카테고리의 다른 글

T test 와 P value  (0) 2021.10.28
Python으로 Multiclass sensitivity, specificity 계산하기  (0) 2021.10.14