바이오 대표

[ Python ] 교차 검증 (Cross Validation) - sklearn.Kfold 본문

Python/others

[ Python ] 교차 검증 (Cross Validation) - sklearn.Kfold

바이오 대표 2022. 2. 15. 12:08

 

교차 검증 (Cross Validation)

Machine Learning 모델을 학습시킬때, Train / Test set 으로 나누어 학습 및 성능 확인을 하는데 이때 너무 하나의 Train set 에 초점을 맞춰 과적합 (Overfitting) 을 불러 일으킬 수 있다. 이를 방지하기 위해 교차 검증 (Cross Validation) 을 사용할 수 있다. 이는 Train set 를 바꿔가며 훈련시켜 평균을 내어 과적합을 막을 수 있다. 

 

아래 그림은 가장 기본적인 K-fold Cross validation 방법을 그림으로 묘사하였다. 

예시 ) 

# X & y 를 KFold(n_split = )  를 이용하여 Train/Test set 로 나눠 보겠다 

한개의 예시만 보였지만 총 4개의 Train/Test set 이 생성된다


여기서 Train: [2 3 4 5 6 7] Test: [0 1] 은 X의 index 이다 

X:
 [[ 0  1]    # x[0]
 [ 2  3]     # x[1]
 [ 4  5]     # x[2] 
 [ 6  7]     # x[3] 
 [ 8  9]     # x[4]
 [10 11]     # x[5]
 [12 13]     # x[6]
 [14 15]]    # x[7]