我使用python和 XGB.train 进行回归,训练数据中没有负y ,但预测结果为负;我的同事在R中执行类似的过程,并且没有负面预测。 我们都使用'count:poisson'作为目标函数。
1这个“ count:poisson”应该有能力避免负面预测吗?
2有人可以分享一些想法或解释吗,这种负面的预测是否合理?
3 Python vs R,为什么Python具有否定预测但R没有?
4如何避免负面预测?
这是我的代码:
params1 = {
'objective':'count:poisson',
'eta':0.1,
'max_depth':6,
'min_child_weight':100,
'伽玛':0.2,
“子样本”:0.8,
'colsample_bytree':1,
'reg_alpha':0,
'reg_lambda':1,
'种子':42
}
xgb_reg_final = xgb.train(params1,dtrain_split,num_boost_round = num_round,evals =监视列表,early_stopping_rounds = 15,evals_result = eval_dict,verbose_eval = 25)
当我调整参数时,生成最佳性能模型的最佳树数也会导致负面预测,但是如果我提早停止迭代并限制模型仅使用较少的树数,则均方根会变差,但预测变为非阴性。 那么如何让模型知道我们想要非负预测。
感谢所有帮助!