early_stopping_rounds,eval_metric 오류 관련 질문있습니다.
1451
작성한 질문수 1
분류 강의 위스콘신 유방암 예측 실습강의 코드입니다.
from xgboost import XGBClassifier
xgb_wrapper = XGBClassifier(n_estimators=400, learning_rate=0.05, max_depth=3)
evals = [(X_tr, y_tr), (X_val, y_val)]
xgb_wrapper.fit(X_tr, y_tr, early_stopping_rounds=50, eval_metric="logloss",
eval_set=evals, verbose=True)
ws50_preds = xgb_wrapper.predict(X_test)
ws50_pred_proba = xgb_wrapper.predict_proba(X_test)[:, 1]
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[36], line 5
3 xgb_wrapper = XGBClassifier(n_estimators=400, learning_rate=0.05, max_depth=3)
4 evals = [(X_tr, y_tr), (X_val, y_val)]
----> 5 xgb_wrapper.fit(X_tr, y_tr, early_stopping_rounds=50, eval_metric="logloss",
6 eval_set=evals, verbose=True)
8 ws50_preds = xgb_wrapper.predict(X_test)
9 ws50_pred_proba = xgb_wrapper.predict_proba(X_test)[:, 1]
File ~\anaconda3\Lib\site-packages\xgboost\core.py:726, in require_keyword_args.<locals>.throw_if.<locals>.inner_f(*args, **kwargs)
724 for k, arg in zip(sig.parameters, args):
725 kwargs[k] = arg
--> 726 return func(**kwargs)
TypeError: XGBClassifier.fit() got an unexpected keyword argument 'early_stopping_rounds'위 코드를 입력하였을때 이러한 오류가 뜨는데 무엇이 원인인지 잘모르겠습니다. Xgboost 버전은 2.1.0이고 파이썬버전같은경우는 3.1.1입니다.
아래는 인터넷에 검색하여 찾아낸 방법으로 입력한 코드입니다
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)
ws50_preds=xgb_wrapper.predict(X_test)
ws50_pred_proba=xgb_wrapper.predict_proba(X_test)[:,1]
아래는 위 코드에 대한 결과값입니다.
오차 행렬 [[35 2] [ 2 75]] 정확도: 0.9649, 정밀도: 0.9740, 재현율: 0.9740, F1: 0.9740, AUC:0.9961
아래는 책에 있는 코드를 입력하였을때의 결과값입니다.
오차 행렬
[[35 3]
[ 2 75]]
정확도: 0.9561, 정밀도: 0.9615, 재현율: 0.9740, F1: 0.9677, AUC:0.9933
제 생각에는 버전차이에 따른 문제같은데 수정된 코드를 사용하였을때 결과값은 도출되지만 기존 강의에서 사용하신 코드의 결과값과는 다릅니다. 수정된 코드를 그대로 사용하는게 맞을지 아니면 다른 방법이 있는지 궁금합니다.
답변 1
1
안녕하십니까,
설치 버전이 강의 실습 버전과 다르군요. conda 설치시 xgboost 버전이 바뀐 것 같습니다.
기존 xgboost 설치를 삭제하고, 다시 xgboost 설치가 필요해 보입니다.
먼저 conda 가상환경 command를 실행하신 후 xgboost를 삭제해 보십시요.
pip uninstall xgboost
이후에 xgboost를 아래 버전으로 재 설치 해보십시요.
pip install xgboost==1.5.0
이후에 jupyter notebook 기동하신 후
import xgboost
print(xgboost.__version__) 하셔서 버전이 1.5.0 인지 확인하고 다시 실습 코드 수행 부탁드립니다.
감사합니다.
모델 서빙과 관련된 강좌가 출시되는지 질문드립니다.
0
16
2
안녕하세요 열심히 수강중인 학생입니다
0
63
2
정수 인덱싱
0
68
2
넘파이 오류
0
85
2
11강 numpy의 axis 축 질문 드립니다.
0
85
2
Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.
0
79
2
Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.
0
70
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
75
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
64
2
5강 강의 오류가 있어요.
0
84
1
실무에서 LTV 관련 모델 선택 질문입니다!
0
72
2
14강 강의 듣는중에 궁금한게 있어서 질문합니다~
0
69
3
파이썬 다운그레이 후 사이킷런 재설치
0
117
2
좋은 강의 감사합니다.
0
74
2
scoring 함수 음수값
0
67
2
6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?
0
100
2
분류 평가 정확도 예측
0
79
2
안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.
0
99
1
카카오톡 채널 있나요
0
108
1
혹시 강의에서 사용하시는 ppt 받을 수 있는건가요
0
190
2
pca 스케일링 관련하여 질문드립니다.
0
100
2
주피터 대신 구글 코랩
0
172
2
강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?
0
148
2
실루엣 스코어..
0
86
2





