Xgboost自定义目标函数

112 篇文章 7 订阅
104 篇文章 4 订阅

(1)xgboost中自定义目标函数的参数传入顺序

自定义的xgboost目标函数传入的第一个参数是预测值,第二个参数是真实值,这个顺序与gridSearchCV函数的scorning参数对应自定义目标函数正好相反,需要注意。

(2)示例及用法

举几个xgboost中自定义目标函数:

 def customedscore(preds, dtrain):
     label = dtrain.get_label()
     pred = [int(i>=0.5) for i in preds]
     confusion_matrixs = confusion_matrix(label, pred)
     recall =float(confusion_matrixs[0][0]) / float(confusion_matrixs[0][1]+confusion_matrixs[0][0])
     precision = float(confusion_matrixs[0][0]) / float(confusion_matrixs[1][0]+confusion_matrixs[0][0])
     F = 5*precision* recall/(2*precision+3*recall)*100
     return 'FSCORE',float(F)
def xg_eval_mae(yhat, dtrain):
    y = dtrain.get_label()
    return 'mae', mean_absolute_error(np.exp(y), np.exp(yhat))

使用方法:在xgb.train和xgb.cv中将自定义的目标函数赋值给feval参数即可。

model = xgb.train(params, trainsetall, num_round,verbose_eval=10, 
				feval = customedscore,maximize=False)
bst_cv1 = xgb.cv(xgb_params, dtrain, num_boost_round=50, nfold=3, seed=0, 
                feval=xg_eval_mae, maximize=False, early_stopping_rounds=10)
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值