lgb 修改 feval 、fobj

fobj

https://www.cnblogs.com/chenxiangzhen/p/10962983.html

https://cloud.tencent.com/developer/article/1357671

https://zhuanlan.zhihu.com/p/75380044

我们知道了该如何在XGBoost/LightGBM中实现自定义objective:那就是objective是否处处存在1-2阶梯度不重要,是不是严格按照梯度公式实现也不重要。

而是要选择一个合适1-2阶“梯度”函数,使得按照XGBoost/LightGBM自己的打分公式计算完后的结果性质接近于原目标的结果(分裂的特征次序和位置)。

当然这是比较难实现的,我们也可以弃疗之,总之都只是一个弱模型,我们也没必要都做的那么精确不是?

不过这里倒是给了我们一些启示:

如果你的objective不是MSE,那么是否应该在计算分裂点的时候,对数据中的长尾数据做一些处理以减小他们对分裂位置的影响?

我们是否应该寻找另一个objective的近似方式,使得在这之上的常用objective表示更接近于精确结果。很明显,[1]中的2阶泰勒展开及其选择的位置并不是一个足够好的方式。

标准实现的GBDT对于label的量纲应该不敏感(排除正则的因素),但在上述objective近似的时候,就无法做这种假设了,试试不同的单位可能会有意外收益。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1-------- 走进前端 2-------- jQuery 3-------- CSS 4-------- A...
    依依玖玥阅读 2,355评论 0 34
  • 三点是深夜,五点是凌晨,而四点是你在夜色中盯着表试图把这一刻归类但不能,四点是你自己。
    无理的啊晶阅读 232评论 0 0
  • 聊聊我自己吧,八卦一下自己,解剖一下自己,自娱一下。 一直坚信外表不能代表什么,但是最近也受到打击...
    心在天堂人在凡尘阅读 319评论 3 2
  • 什么是文化?我一直想知道,却一直不懂,看了许多文化,历史的,民族的,学校的,还有刚才有关于鸡的…… 真是好有趣,可...
    曼谷123阅读 182评论 0 0