Skip to main content
 首页 » 编程设计

python之XGBoost 参数 'show_progress' 给出错误

2025年05月04日22mq0036

对于下面的函数,我没有将估算器的数量作为输出,但相反,我得到了以下类型错误。

cv() got an unexpected keyword argument 'show_progress' 

即使文档包含标志,我仍收到类型错误。我正在关注此博客以进行参数调整。谁能指出我哪里出错了? the blog 有没有其他方法可以将估计器的数量作为输出?

def modelfit(alg, dtrain, predictors, useTrainCV=True, cv_folds=5, early_stopping_rounds=50): 
if useTrainCV: 
    xgb_param = alg.get_xgb_params() 
    xgtrain = xgb.DMatrix(dtrain[predictors].values, label=dtrain[target].values, silent=False) 
    cvresult = xgb.cv(xgb_param, xgtrain, num_boost_round=alg.get_params()['n_estimators'], nfold=cv_folds, 
        metrics='auc', early_stopping_rounds=early_stopping_rounds, show_progress = True) 
    alg.set_params(n_estimators=cvresult.shape[0]) 
 
#Fit the algorithm on the data 
alg.fit(dtrain[predictors], dtrain[target],eval_metric='auc') 
 
#Predict training set: 
dtrain_predictions = alg.predict(dtrain[predictors]) 
dtrain_predprob = alg.predict_proba(dtrain[predictors])[:,1] 
 
#Print model report: 
print "\nModel Report" 
print "Accuracy : %.4g" % metrics.accuracy_score(dtrain[target].values, dtrain_predictions) 
print "AUC Score (Train): %f" % metrics.roc_auc_score(dtrain[target], dtrain_predprob) 
 
 
feat_imp = pd.Series(alg.booster().get_fscore()).sort_values(ascending=False) 
feat_imp.plot(kind='bar', title='Feature Importances') 
plt.ylabel('Feature Importance Score') 

请您参考如下方法:

xgboost 的最新版本 (0.6) 对 xgb.cv 有这些选项:

xgboost.cv(params, dtrain, num_boost_round=10, nfold=3,  
stratified=False, folds=None, metrics=(), obj=None, feval=None,  
maximize=False, early_stopping_rounds=None, fpreproc=None,  
as_pandas=True, verbose_eval=None, show_stdv=True, seed=0,  
callbacks=None, shuffle=True) 

show_progress 已被弃用,取而代之的是 verbose_eval。参见 here