• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

하이퍼 파라미터 튜닝 기법 적용하기1 (XGBoost 실습) 질문입니다

22.02.17 18:20 작성 조회수 136

0

하이퍼 파라미터 튜닝 기법 적용하기1 (XGBoost 실습),
9분 37초에서 cross_val_score 를 사용할 때
fit() 매소드를 통해 학습을 시킨다음에, cross_value_score 를 사용할 수 있는 것이 아닌가요?
강의 자료 105_PRACTICE_TITANIC_IMPORTANCE 에서는 fit() 매소드를 통해 학습을 시킨다음에 cross_value_score 를 사용했는데 여기서는 바로 cross_value_score를 사용해서 질문드립니다

답변 1

답변을 작성해보세요.

0

안녕하세요. 이게 사실 어떤 정형화된 룰이 없고, sklearn 도 수시로 변경되고 하면서, 둘다 가능하다 정도로 생각하시면 좋을 것 같아요. 실제로 캐글의 다양한 코드를 보시면, 둘 다의 코드들을 보실 수 있으실꺼예요.

좀더 정확하게 본다면, fit() 은 전체 데이터를 기반으로, 한번에 모델에 적용합니다. cross_val_score() 는 cv 등 k-fold 옵션과 함께, 데이터를 쪼개서, 각 데이터별로 모델에 적용하고(즉, fit 을 자체적으로 하고), 테스트를 합니다.

그래서, 기본적으로는 cross_val_score() 에 생짜 모델을 넣고, 데이터를 쪼개서, 모델에 적용해서, 다양한 데이터에 대한 평균 값을 확인한 후, 최종 결과를 낼 때는 튜닝된 모델을 기반으로, fit() 만으로 전체 데이터를 한번에 적용하는 경우도 많습니다.

그런데, fit() 으로 전체 데이터를 한번에 모델에 적용한 후에, 이를 cross_val_score() 에 넣어서, 쪼개진 데이터로 한번더 fit 시켜서, 테스트를 하기도 합니다. 큰 차이가 없거나, 아예 차이가 없는 경우라서, 기본적으로는 전자가 좀더 많이 쓰지만, 후자로 써도 문제 없다고 생각해주시면 괜찮을 것 같습니다.