“ XGBoost培训包装器”和“ XGBoost sklearn包装器”中的代码有什么区别?

时间:2019-09-25 11:15:54

标签: python xgboost

问题是我在两个模型中收到的分类结果严重不同。

两个包装器的参数都相等。

我猜可能是这个问题: 1)在XGB中,我从简历开始,然后再培训;在SKL中,我从火车开始,并根据培训行为进行简历。 2)在XGB中,我使用Dmatrix,而在SKL中-不。 3)在XGB中,我使用Early_stopping_rounds,但在SKL中则使用-

# XGB wrapper
param = {
...
}

bst_cv = xgb.cv(
...
)

test_auc_mean = bst_cv['test-auc-mean']
best_evaluation = max(test_auc_mean)
best_iteration = test_auc_mean[test_auc_mean == best_evaluation].index[0]

bst = xgb.train(param, 
                dtrain, #Dmatrix which contains X_train, y_train 
                num_boost_round = best_iteration)

bst.predict(dtest) #Dmatrix witch contains X_test

# SKL wrapper
xg_cl = xgb.XGBClassifier(
...
)

xg_cl.fit(X_train, 
          y_train, 
...)

xg_cl.predict_proba(X_test)

结果:

在所有积极因素中,

否定积极因素: XGB_wrapper(进一步-XGB)-12% Sk_learn_wrapper(进一步-SKL)-16%

所有预测的肯定值中的

false_positives: XGB-20% SKL-30%

也就是说,SKL模型的效果更差。

0 个答案:

没有答案