博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Xgboost自定义目标函数
阅读量:4153 次
发布时间:2019-05-25

本文共 1013 字,大约阅读时间需要 3 分钟。

(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)

转载地址:http://gxrti.baihongyu.com/

你可能感兴趣的文章
进程创建时线程栈处理
查看>>
进程创建时pid分配
查看>>
进程创建时安全计算处理
查看>>
进程创建时cgroup处理
查看>>
进程创建时共享内存处理
查看>>
idle进程创建
查看>>
内核线程创建
查看>>
linux elf tool readelf
查看>>
linux tool objdump
查看>>
linux tool nm
查看>>
字节对齐
查看>>
把类成员函数封装成线程API所需要的函数
查看>>
HTTP Live Streaming直播(iOS直播)技术分析与实现
查看>>
Ribbon界面图标可以直接用PNG做透明图标
查看>>
向其他软件窗口、控件发送消息的方法
查看>>
word或者pdf文件全部保存为图片的方法
查看>>
VS2010下SQLite3生成lib库文件
查看>>
sqlite3的helloworld
查看>>
MFC下支持中文的SQLite3封装类使用
查看>>
简单高效的多线程日志类
查看>>