Python实例介绍正则化贪心森林算法(附代码)

作者:Ankit Chaoudhary

翻译:笪洁琼

校对:梁傅淇

本文共3515字,建议阅读7分钟。
通过本文与大家讨论一个被称为正则化的贪心森林算法。


引言


作为一名参与多个机器学习竞赛数据科学家,我总是在寻找尚未流行的算法。我是这样定义这些算法的:它们本身最终不会成为竞赛里的赢家,但是它们会给的预测带来不同。


为什么我对这些算法感兴趣?


关键在于“它们本身”。这些算法能够用在集成模型之中,来获取超过大多数流行的梯度提升算法(XGBoostLightGBM等等)的额外优势。


这篇文章讨论的是一种被称为正则化的贪心森林(RGF)的算法。它在大量的数据集里的表现都和Boosting算法相当(如果没有优于它们的话)。它们产生更少的预测,并且在与其他树提升模型集成时表现更好。

目录


1.  正则化贪心森林算法vs. 梯度提升


  • 权重优化


  • 树的大小


  • 模型大小


2. 使用Python实现正则化贪心算法


正则化贪心森林算法(RGF vs. 梯度提升


Boosting算法之中,每个分类器/回归因子都使用数据进行训练,同时也会将之前分类器和回归因子的成功经验纳入考量。每一次训练之后,都会重新分配权重。被错误分类的数据所占的权重将会上升,用以突出最困难的案例。这样,后续的学习器将会专注于这些数据。


但是,Boosting方法只是把决策树基学习器视为一个黑盒子,并没有利用树结构本身。从某种意义上说,在每次迭代中,Boosting都会对模型进行部分纠正。

相比之下,正则化贪心森林算法(RGF)执行两个步骤:


找出对目前的森林可进行的结构上的一步改造,以使得新森林损失(例如,最小二乘或对数损失)最小化。


调整整个森林的叶子重量,使损失函数最小化。


寻找最优结构变化:


1.为了计算效率,在搜索新的森林时只执行两种操作 :


  • 要分割一个现有的叶节点,


  • 开始生长新树(:在森林里增加上一个新的树桩)


2.通过不断地评估所有可能的结构变化下最大的损失减少量

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值