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

예찬님의 프로필 이미지
예찬

작성한 질문수

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

HyperOpt를 이용한 XGBoost 하이퍼 파라미터 튜닝

질문

해결된 질문

작성

·

258

0

1. 책 226 페이지에 xgboost는 자체 내장된 교차검증이 있다고 나와있는데, 목적함수에 왜 따로 교차검증을 하시는건가요? 

2. 출력되는 best loss에 경우 정확도말고 다른 성능지표를 같이 확인하고 싶을때가 있을 수 있을거같은데 그럴경우에는 정확도 뿐만 아니라 다른 성능 지표까지 한번에 같이best loss에 출력되게 하는 방법은 없을까요?

3. n_estimators의 경우 최적 하이퍼 파라미터를 잘 안찾아보는 편인가요?

4. max_evals의 경우 많이 반복할수록 시간은 오래 걸리지만 더 높은 성능을 기대할 수 있나요?

5. 최적 하이퍼파라미터 찾으실 때 미리 어느정도 값을 잡고 가시는데 그런건 경험으로 어느정도일지 예상하고 하시는거죠?

답변 4

0

예찬님의 프로필 이미지
예찬
질문자

n_estimators를 어떻게 잡냐에 따라 최적 하이퍼 파라미터가 다르게 나올 수 있다는거죠?

권 철민님의 프로필 이미지
권 철민
지식공유자

네 그렇습니다

예찬님의 프로필 이미지
예찬
질문자

감사합니다!

0

예찬님의 프로필 이미지
예찬
질문자

혹시 목적 함수에서 n_estimators=100은 수행시간 단축할려고 작게 잡고가시는거같은데 n_estimators=1000으로 하는거랑 최적 하이퍼 파라미터 찾아주는건 비슷하게 찾아주나요?

권 철민님의 프로필 이미지
권 철민
지식공유자

n_estimators를 1000으로 하면 100보다는 성능이 보통 조금 향상됩니다.  강의의 특성상 1000으로 잡으면서 하이퍼 파라미터를 튜닝하면 수행하는데 시간이 꽤 걸려서 학습중에 오래 기다려야 합니다. 때문에 100으로 설정했지만, 시간이 충분하다면 1000으로 시작해도 무방합니다. 

0

예찬님의 프로필 이미지
예찬
질문자

항상 감사합니다.

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까, 

 

1. 책 226 페이지에 xgboost는 자체 내장된 교차검증이 있다고 나와있는데, 목적함수에 왜 따로 교차검증을 하시는건가요? 

=> 파이썬 Native xgboost에 좋은 기능이 있는데 자체 교차 검증이 early stopping도 지원합니다. 근데 사이킷런 wrapper xgboost는 cross_val_score()에서 교차 검증 성능값만 반환하고 early stopping이 지원되지 않습니다. 그래서 따로 교차 검증을 kfold로 구현하였습니다. 

 

2. 출력되는 best loss에 경우 정확도말고 다른 성능지표를 같이 확인하고 싶을때가 있을 수 있을거같은데 그럴경우에는 정확도 뿐만 아니라 다른 성능 지표까지 한번에 같이best loss에 출력되게 하는 방법은 없을까요?

=> 아쉽게도 없습니다. 

3. n_estimators의 경우 최적 하이퍼 파라미터를 잘 안찾아보는 편인가요?

=> 좀 덜 찾아봅니다. 보통은 하이퍼 파라미터 튜닝이 아니더라도 높이 설정하면 성능이 조금씩 높아지고, 계속 높이면 더 이상 좋아지지 않는걸 알고 있기 때문에 이걸 hyperopt에 굳이 적용하는 경우가 많지는 않은 것 같습니다. 

4. max_evals의 경우 많이 반복할수록 시간은 오래 걸리지만 더 높은 성능을 기대할 수 있나요?

=> 일반적으로는 그렇습니다. 다만 너무 크게 잡은 경우 어느정도 임계점이 있다는 정도는 인지하고 있어야 합니다. 

5. 최적 하이퍼파라미터 찾으실 때 미리 어느정도 값을 잡고 가시는데 그런건 경험으로 어느정도일지 예상하고 하시는거죠?

 

=> 음.  꼭 그런건 아닌데, 그냥 막 나열식으로 하는 것 보다는 어느정도 경험치가 도움이 될때가 있습니다. 

예찬님의 프로필 이미지
예찬

작성한 질문수

질문하기