머신러닝

<<러닝 머신 >> 교차검증

미스터 한뺑 2022. 9. 7. 14:34
반응형

머신러닝 모델의 성능을 평가하는 방법은 크게 두가지로 나눌 수 있습니다.

하나는 hold-out 교차검증이고 하나는 k-fold 교차검증입니다.

 

 

1. Hold - out 교차검증

 

- 데이터셋을 훈련셋과 테스트셋으로 분리합니다. 

- 빠른 속도로 검증가능 

- 단점 :  훈련셋과 테스트셋으로만 나눠서 모델의 성능을 평가하다보면, 테스트셋이 모델의 파라미터 설정에 큰 영향을 미치게 됩니다. 모델이 테스트셋에 오버피팅될 가능성이 있음

 

 

 

오버피팅을 최소한으로 하는 검증이 바로  KFold이다.

 

2. K-Fold 교차검증(K-Fold cross validation)

  • 전체데이터를 k등분하고, 각등분을 한번씩 검증데이터로 사용
  • 각폴드의 성능 결과값을 평균내서 검증

 

 

 

 

---------------------------------------------실습해보기---------------------------------------------------

 

 

 

먼저 sklearn을 불러오고 KFfold가 들어있는 model_selection 함수를 불러온다 .

kfold는 객체가 제너레이터로 반환이 된다는것을 알수 있다 .

 

그런데 값을 보면 순서대로 나열된것을 볼수 있다 . 이러면 검증할때 잘 검증이 안될수 있으므로 

섞어 놔야한다 .

 

변수로  SEED를 주고 세상에서 아름다운 숫자 42를 넣어두고 

kfold 옵션에 셔플을 써서 값을 섞어준다.

 

그리고 값이 반환되는것을 보면 두 리스트로 반환이 되는것을 알수 있다

이것은 for문을  돌려서 두 리스트를 두 변수에 담아준다.

 

 

이제 검증할 시간이다 .

for문을 돌리고 두 값을 tri, vai 변수에 담은다음 학습데이터랑 검증데이터로 나눈다.

값은 0.85가 나왔다 . 이정도면 좋은 모델인것을 확인을 할수 있다 .

 

 

 

반응형