• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

early stopping best iteration

21.05.30 15:39 작성 조회수 241

1

안녕하세요!  

좋은 강의를 잘 듣고 있는 학생입니다. 강의를 듣다가 궁금증이 생겨서 질문 남깁니다. 시덥지않은 질문일 수 있는데 궁금해서 알려주시면 감사하겠습니다!

1) early_stopping_rounds의 값을 지정하고 돌리면 선생님처럼 Stopping. Best itertion: 하고 값이 안나오는데 이건 따로 지정해주어야하는건가요? 아니면 무언가가 업데이트 되면서 안나오는건가요??

좋은 강의 감사합니다:)

답변 2

·

답변을 작성해보세요.

1

안녕하십니까,

이게 사이킷런의 버전이 달라서 좀 결과가 달라지는 것 같습니다.

early stopping은 특정 iteration interval 동안 metric 성능이 향상되지 않으면 train을 멈춥니다.

가령 n_estimators=400, early_stopping=100 , eval_metric=log_loss 으로 설정했는데,

iteration을 211번 했을 때 log loss=0.085 되었고, 계속 iteration을 212, 213, 214,,,, 해서 311 까지 추가적으로 100번(설정된 early_stopping값)을 진행했는데, log loss가 0.085 보다 낮은 값이 나오지 않으면 400번 iteration까지 아직 남아있는 89번 iteration을 더이상 수행하고 멈추는 것입니다.

early stopping 동작이 작동안된다는 것은 early stopping interval동안 log loss metric이 계속 좋아지고 있다는 의미입니다. 이게 버전이 바뀌면서 강의 영상과 좀 다른 것 같습니다. early stopping을 30정도 줄여서 해보시지요. 그래도 안되면 더 줄여서 해보시면 동작할 것 같습니다. 

감사합니다.

0

김예은님의 프로필

김예은

질문자

2021.05.30

버전이 달라져서 그런가했는데 달라져서 그런거군요! 

early stopping에 대해서 조금 헷갈리는 부분도 있었는데 정확하게 설명해주셔서 확실히 이해가 되었어요! 

빠르게 답변해주셔서 감사해요!! 좋은 강의도 늘 감사합니다:)