작성
·
57
·
수정됨
0
수업 중 다룬, 책에도 있는 코드가 실행시 오류 나는 데, 해결이 쉽지 않습니다.
(원본 미변경)
사진에서는 잘렸는데, early stopping이 wrapper_fit에서 적용 불가해서 오류가 발생합니다.
실행해본 해결법
xgboost 라이브러리 다운그레이드시(사용하셨던 1.5등), 넘파이 판다스 추가 다운그레이드로 라이브러리간 충돌이 일어납니다.
참고 - 로컬에서도 마찬가지 방식으로 오류가 발생합니다.
xgboost 라이브러리 현재 버전은 3.0입니다.
동일한 내용을 실습 가능한 대체 코드 공유해 주시면 감사하겠습니다 🙂
답변 2
0
안녕하십니까,
오류 내용이 다 보이지 않습니다. 캡처 하지 마시고, 오류 내용을 텍스트로 여기에 올려봐 주십시요.
그리고 현재 커널에서 xgboost의 버전, numpy 버전, pandas 버전을 다 올려 주십시요.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 김상원님.
XGBoost 사용 시 early_stopping_rounds
관련 오류는 버전 차이에서 비롯되는 경우가 많습니다. XGBoost의 최신 버전에서는 early_stopping_rounds
와 eval_metric
을 초기화 시점에 직접 설정하는 방식을 사용합니다. 이와 관련된 유사한 질문과 그 해결방법에 대한 기존 답변들이 있어 아래에 안내드립니다.
early_stopping_rounds,eval_metric 오류 관련 질문있습니다.
early_stopping_rounds
는 fit 메서드가 아닌 XGBClassifier 초기화 시에 설정하는 것이 필요합니다. 강사님께서 버전 다운그레이드를 제안하셨습니다.XGBoost 2.1.3 최신버전 사이킷런 XGboost
최신 XGBoost 사용에 따른 코드 변경 사항은 다음과 같습니다:
from xgboost import XGBClassifier
xgb_wrapper = XGBClassifier(n_estimators=400,
learning_rate=0.05,
max_depth=3,
early_stopping_rounds=50,
eval_metric="logloss")
evals = [(X_tr, y_tr), (X_val, y_val)]
xgb_wrapper.fit(X_tr, y_tr, eval_set=evals, verbose=True)
early_stopping_rounds
와 eval_metric
을 설정하여 문제를 해결합니다.질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.