• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

k-fold 교차 검증 부분 질문 드립니다!

22.12.13 20:14 작성 22.12.13 20:14 수정 조회수 403

0

스크린샷 2022-12-13 오후 8.06.09.png안녕하세요! 강의 너무 재밌게 잘 보고 있습니다! k-fold 교차검증 부분 듣다가 스크린샷 코드에 궁금한 점이 있어서 질문드립니다!
스크린샷 처럼 StratifiedKFold.split() 을 이용해서 데이터를 나누고 for문으로 직접 K-fold 방식을 수행할 때, dt_clf 모델이 for문의 이전 iteration에 수행한 학습을 누적해서 학습을 하는거 같은데 이렇게 하는게 맞는 것인지 궁금합니다.

제 생각엔 0번 iter 수행 후 dt_clf 값 초기화, 1번 iter 수행 후 dt_clf 값 초기화, ... 4번까지. 이렇게 수행되어야 한 K-fold 수행 내에서 "학습에 사용한 데이터로 validation" 하는 것을 방지할 수 있을 것 같습니다. 물론 같은 데이터로 여러 epoch을 수행하면 어차피 학습한 데이터가 누적해서 validation으로 사용될 것 같기도 한데... 어떤거 맞는 방법인지 실제 코드는 어떻게 수행되는지 설명 부탁 드립니다.

또한, 아래에 나오는 cross_val_score() 함수, GridSearchCV() 함수 에서는 어떻게 수행하는지 알려주시면 감사하겠습니다.

좋은 강의 감사합니다!

답변 1

답변을 작성해보세요.

1

안녕하십니까,

재미있게 보고 계시다니 저도 기쁘군요 ^^

네, 맞습니다. k fold 수행 시 마다 학습 모델은 초기화 되어야 합니다.

학습 모델은 dt_clf.fit(X_train, y_train) 을 수행 될 때마다 새로운 학습 데이터로 모델이 초기화 됩니다.

이는 cross_val_score()나 GridSearchCV 모두 마찬가지 입니다.

감사합니다.