xgboost 自定义目标函数和评估函数
函数 自定义 目标 评估 xgboost
2023-09-14 08:58:38 时间
https://zhpmatrix.github.io/2017/06/29/custom-xgboost/
https://www.cnblogs.com/silence-gtx/p/5812012.html
https://blog.csdn.net/hfzd24/article/details/76903927
如下,自定义评估函数 maxrecall:
def maxRecall(preds,dtrain): #preds是结果(概率值),dtrain是个带label的DMatrix labels=dtrain.get_label() #提取label preds=1-preds precision,recall,threshold=precision_recall_curve(labels,preds,pos_label=0) pr=pd.DataFrame({'precision':precision,'recall':recall}) return 'Max Recall:',pr[pr.precision>=0.97].recall.max()
参数和轮数就按一般设置,然后watchlist不能少,不然就不会输出东西了,比如watchlist=[(xgb_train,'train'), (xgb_test,'eval')]
最后就是xgb.train中的内容了,写成:
bst=xgb.train(param,xg_train,n_round,watchlist,feval=maxRecall,maximize=False)
就行了。feval就是你的metric,maximize要加上,虽然不知道具体有什么用……
2、如果你需要自定义损失函数的话。先写你的损失函数,比如:
def custom_loss(y_pre,D_label): #别人的自定义损失函数
label=D_label.get_label()
penalty=2.0
grad=-label/y_pre+penalty*(1-label)/(1-y_pre) #梯度
hess=label/(y_pre**2)+penalty*(1-label)/(1-y_pre)**2 #2阶导
return grad,hess
bst=xgb.train(param,xg_train,n_round,watchlist,feval=maxRecall,obj=custom_loss,maximize=False)
只要再加上obj=custom_loss就可以了...
相关文章
- PHP实现的自定义图像居中裁剪函数示例
- SQL编程之MySQL常用函数
- js String Trim函数
- mysql 序列号生成器 (自定义函数)
- MySQL中的CONCAT函数使用
- C++ 用自定义函数验证高等数学的定积分例题
- OpenCV每日函数 几何图像变换模块 (4) getRectSubPix函数
- OpenCV每日函数 Object Detection目标检测模块 (2) 定向梯度直方图(HOG)描述符
- golang go mod包管理自定义包及init初始化函数介绍
- Linux 0.11-进入main函数前最后一跃-10
- 函数式编程初探
- PHP发送邮件函数sendmail()
- 第十四届蓝桥杯集训——自定义函数+static+return
- 〖Python 数据库开发实战 - Python与Redis交互篇⑥〗- redis-py 的事务函数
- 60种特征工程操作:使用自定义聚合函数
- 基于simulink的MPPT控制器性能仿真,MPPT使用S函数实现
- 【Kotlin 协程】协程中的多路复用技术 ② ( select 函数原型 | SelectClauseN 事件 | 查看挂起函数是否支持 select )
- 函数栈帧(值得收藏)
- sql 聚合函数 STRING_AGG 高阶
- 爬虫日记(107):Twisted:使用生成器构造回调函数
- Python标准库:内置函数format(value[, format_spec])
- Python标准库:内置函数locals()
- 小顶堆与大顶堆的自定义cmp函数
- sort中自定义cmp函数不能是<=
- 自定义实现spark的分区函数
- 【MySQL笔记】MySQL之自定义函数和触发器的使用
- 【C++实践】C++代码接口封装 — “父类声明纯虚函数”法
- Matlab绘制激活函数sigmoid,Relu
- Python少儿编程入门篇(10)自定义函数
- lapply与自定义函数 apply sapply 字符串变成list list变成vector 向量 调用开方括号函数“[”和参数1来获取每个基因的第一个 id r匹配双反斜杠 双斜杠匹配正则。