더북(TheBook)

6.4.2 중첩 교차 검증을 사용한 알고리즘 선택

이전 절에서 보았듯이 그리드 서치와 k-겹 교차 검증을 함께 사용하면 머신 러닝 모델의 성능을 세부 튜닝하기에 좋습니다. 여러 종류의 머신 러닝 알고리즘을 비교하려면 중첩 교차 검증(nested cross-validation) 방법이 권장됩니다. 오차 예측에 대한 편향을 연구하는 중에 바르마(Varma)와 사이몬(Simon)은 중첩된 교차 검증을 사용했을 때 테스트 데이터셋에 대한 추정 오차는 거의 편향되지 않는다는 결론을 얻었습니다.12

중첩 교차 검증은 바깥쪽 k-겹 교차 검증 루프가 데이터를 훈련 폴드와 테스트 폴드로 나누고 안쪽 루프가 훈련 폴드에서 k-겹 교차 검증을 수행하여 모델을 선택합니다. 모델이 선택되면 테스트 폴드를 사용하여 모델 성능을 평가합니다. 그림 6-8은 바깥 루프에 다섯 개의 폴드를 사용하고 안쪽 루프에 두 개의 폴드를 사용하는 중첩 교차 검증의 개념을 보여 줍니다. 이런 방식은 계산 성능이 중요한 대용량 데이터셋에서 유용합니다. 중첩 교차 검증의 폴드 개수를 고려하여 5×2 교차 검증이라고도 합니다.13

▲ 그림 6-8 중첩 교차 검증

 

 


12 Bias in Error Estimation When Using Cross-validation for Model Selection, BMC Bioinformatics, S. Varma and R. Simon, 7(1): 91, 2006

13 역주 전처리 과정이 복잡하면 계산 시간이 오래 걸릴 수 있습니다. Pipeline 클래스와 make_pipeline 함수의 memory 매개변수에 캐싱 디렉터리를 지정하면 전처리 결과를 로컬 디스크에 저장한 후 재사용합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.