인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

진희상님의 프로필 이미지
진희상

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

교차검증 성능평가 cross_val_score()와 하이퍼 파라미터 튜닝을 위한 GridSearchCV - 02

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

작성

·

595

·

수정됨

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 모두 마찬가지 입니다.

감사합니다.

진희상님의 프로필 이미지
진희상

작성한 질문수

질문하기