작성
·
441
0
분류 강의 위스콘신 유방암 예측 실습강의 코드입니다.
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 인지 확인하고 다시 실습 코드 수행 부탁드립니다.
감사합니다.