본문 바로가기
Study

#7. [AI] Cross validation

by Joshuuakeem 2023. 3. 6.

1. Cross validation(교차검증)이란?

 일반적인 학습의 경우 train set으로 모델을 훈련하고 test set으로 모델의 검증을 수행한다.

하지만 고정된 Test set의 경우 일반적으로 모델을 테스트한 후 파라미터 수정하는 과정을 거치더라도

고정된 test set에 Overfitting 되어 실제 다른 데이터를 적용할 경우 예상된 정확도와 다른 결과를 얻을 수 있다.

 

이를 해결하기 위해 Cross validation이 등장했다.

Cross-validation은 주어진 데이터 세트를 여러 개의 서브셋으로 나누고,

각각의 서브셋을 모델 학습에 사용하고 나머지 서브셋을 테스트에 사용하는 방법이다.

 

출처 https://dataaspirant.com/cross-validation/

 

 

 

2. Cross validation의 종류

Cross-validation에는 다양한 종류가 있으며, 가장 일반적으로 사용되는 Cross-validation 종류를 알아보자.

  1. K-fold Cross-validation: 데이터를 k개의 서브셋으로 분할한 후, k번 모델을 학습하고 평가. 각 시행에서 k번째 서브셋은 테스트 데이터로 사용되고, 나머지는 훈련 데이터로 사용된다. 일반적으로 k=5 또는 k=10으로 설정된다.
  2. Leave-One-Out Cross-validation (LOOCV): 데이터셋이 작을 때 사용하는 주로 사용되는 방법. 데이터를 n개의 서브셋으로 분할. 각 시행에서 하나의 데이터 샘플만 테스트 데이터로 사용하고, 나머지는 훈련 데이터로 사용한다. 하지만 데이터셋이 커지면 계산 비용이 크게 증가한다.
  3. Stratified Cross-validation: 클래스 불균형 문제가 발생할 경우, 각 클래스의 비율을 유지하면서 데이터를 분할하는 방법이다. 이 방법은 클래스 비율이 크게 차이 나는 경우에 사용.
  4. Time Series Cross-validation: 시간이 중요한 데이터에서 과거 데이터를 훈련 데이터로 사용하고, 미래 데이터를 테스트 데이터로 사용하는 방법.
  5. Repeated Cross-validation: k-fold cross-validation을 여러 번 반복하여 신뢰성 있는 결과를 얻는 방법
  6. Monte Carlo Cross-validation: 무작위로 데이터를 k개의 서브셋으로 분할하는 방법. 이 방법은 K-fold Cross-validation에서 발생하는 문제를 해결하는 데에 사용된다.

 

 

 

 

3. Cross validation의 장, 단점

- 장점:

  1. 일반화 성능 예측: Cross-validation을 사용하면 모델의 일반화 성능을 더욱 정확하게 예측이 가능하다.
  2. 데이터 불균형 해결: 데이터 세트가 불균형하게 분포되어 있을 경우, 일부 클래스의 샘플 수가 적어져서 모델의 성능이 향상되지 않는 문제를 해결할 수 있다.
  3. 모델의 하이퍼파라미터 튜닝: Cross-validation은 모델의 하이퍼파라미터를 튜닝하는 데 유용하다. 각각의 서브셋에서 학습한 모델들의 성능을 비교하여 하이퍼파라미터를 조정할 수 있다.

 

- 단점:

  1. 시간과 계산 비용: Cross-validation은 데이터 세트를 여러 개의 서브셋으로 분할하여 모델을 학습하고 평가하기 때문에, 시간과 계산 비용이 많이 듭니다.
  2. 데이터 분할 방법에 따른 성능 차이: Cross-validation에서 데이터를 분할하는 방법에 따라 모델의 성능이 달라질 수 있다. 
  3. 데이터의 크기와 분포: 데이터의 크기가 작거나 분포가 균등하지 않을 경우, Cross-validation의 성능이 저하될 수 있다.

 

 

 

 

reference :)

https://dataaspirant.com/cross-validation/

반응형

'Study' 카테고리의 다른 글

#9. [CS] Context switching  (0) 2023.03.09
#8. [AI] 모델의 성능 평가 지표  (0) 2023.03.07
#6. RDMBS와 NOSQL  (0) 2023.03.03
#5. Loss surface  (0) 2023.03.02
#4. Machine learning / Deep learning 차이점?  (0) 2023.02.26