과적합 없이 반복하기

Python으로 설계하는 Machine Learning 워크플로

Dr. Chris Anagnostopoulos

Honorary Associate Professor

프로덕션 배포 후에도 ML 파이프라인을 추가로 튜닝할 수 있음을 보여주는 다이어그램.

Python으로 설계하는 Machine Learning 워크플로

같은 다이어그램에서, 프로덕션에서 더 많은 데이터를 추출해 모형을 추가 튜닝할 수 있음을 나타냄.

Python으로 설계하는 Machine Learning 워크플로

같은 다이어그램에서, 도메인 전문가가 손실 함수 등 새 인사이트를 제공해 모형이 바뀔 수 있음을 보여줌.

Python으로 설계하는 Machine Learning 워크플로

프로덕션에 배포된 모형은 챔피언, 개발 중인 모형은 챌린저로 표시된 다이어그램.

Python으로 설계하는 Machine Learning 워크플로

교차 검증 결과

grid_search = GridSearchCV(pipe, params, cv=3, return_train_score=True)
gs = grid_search.fit(X_train, y_train)
results = pd.DataFrame(gs.cv_results_)
results[['mean_train_score', 'std_train_score', 
   'mean_test_score', 'std_test_score']]
   mean_train_score  std_train_score  mean_test_score  std_test_score
0             0.829            0.006            0.735           0.009
1             0.829            0.006            0.725           0.009
2             0.961            0.008            0.716           0.019
3             0.981            0.005            0.749           0.024
...
Python으로 설계하는 Machine Learning 워크플로

교차 검증 결과

   mean_train_score  std_train_score  mean_test_score  std_test_score
0             0.829            0.006            0.735           0.009
1             0.829            0.006            0.725           0.009
2             0.961            0.008            0.716           0.019
3             0.981            0.005            0.749           0.024
4             0.986            0.003            0.728           0.009
5             0.995            0.002            0.751           0.008

관찰:

  • 학습 점수가 테스트 점수보다 훨씬 높음.
  • 테스트 점수의 표준편차가 큼.
Python으로 설계하는 Machine Learning 워크플로

데이터셋이 학습용과 테스트용으로 나뉘고, 학습 세트가 교차 검증으로 다시 분할됨.

Python으로 설계하는 Machine Learning 워크플로

데이터셋이 학습용과 검증용으로 나뉘고, 학습 세트가 교차 검증으로 다시 분할됨.

Python으로 설계하는 Machine Learning 워크플로

과적합 탐지

  • CV 학습 점수 >> CV 테스트 점수
    • 모형 학습 단계 과적합
    • 분류기 복잡도 낮추기
    • 학습 데이터 늘리기
    • CV 폴드 수 늘리기
  • CV 테스트 점수 >> 검증 점수
    • 모형 튜닝 단계 과적합
    • CV 폴드 수 줄이기
    • 파라미터 그리드 크기 축소

데이터셋이 학습, 검증으로 나뉘고, 학습 세트가 교차 검증으로 다시 분할됨.

Python으로 설계하는 Machine Learning 워크플로

데이터셋이 학습과 검증으로 나뉘고, 학습 세트가 교차 검증으로 다시 분할됨.

Python으로 설계하는 Machine Learning 워크플로

데이터셋이 학습, 검증, 프로덕션 데이터로 나뉘고, 학습 세트가 교차 검증으로 다시 분할됨.

Python으로 설계하는 Machine Learning 워크플로

이력서에 "CV 전문가"!

Python으로 설계하는 Machine Learning 워크플로

Preparing Video For Download...