没有合适的资源?快使用搜索试试~ 我知道了~
Boosting算法(提升法和Gradient Boosting)
需积分: 5 1 下载量 179 浏览量
2024-03-14
22:17:31
上传
评论
收藏 15KB DOCX 举报
温馨提示
试读
2页
Boosting算法是一种集成学习算法,由一系列基本分类器按照不 同的权重组合成为一个强分类器,这些基本分类器之间有依赖关系。 包括Adaboost算法、提升树、GBDT算法。 当Adaboost算法中的基本分类器是cart回归树时,就是提升树, 同时,损失函数变为平方误差损失函数。在Adaboost算法中通过改变 样本的权重来进行每一轮的基本分类器的学习,在提升树算法中,是 通过上一轮学习的残差进行本轮的学习。
资源推荐
资源详情
资源评论
8.26 Boosting 算法(提升法和 Gradient
Boosting)Boosting 算法是一种集成学习算法,由一系列基本分类器按照不
同的权重组合成为一个强分类器,这些基本分类器之间有依赖关系。
包括 Adaboost 算法、提升树、GBDT 算法。
当 Adaboost 算法中的基本分类器是 cart 回归树时,就是提升树,
同时,损失函数变为平方误差损失函数。在 Adaboost 算法中通过改变
样本的权重来进行每一轮的基本分类器的学习,在提升树算法中,是
通过上一轮学习的残差进行本轮的学习。
1.需要解决的问题
对于 Boosting 算法,需要解决两个问题:
如何调整训练集,使得在训练集上训练的弱分类器得以进
行。
如何将训练得到的各个弱分类器联合起来形成强分类器。
2.算法的三个要素
函数模型(Boosting 的函数模型是叠加型的),即:
目标函数(选定某种损失函数作为优化目标):
优化算法(贪婪地逐步优化),即:3.Gradient Boosting 算法(梯度提升算法)
Gradient Boosting 算法的实现:
函数模型为 CART 回归树模型。
损失函数一般为“对数损失函数”或“指数损失函数”。
优化算法采用梯度下降。
针对 Boosting 需要解决的两个问题,Gradient Boosting 算法
采用了以下策略:
将残差作为下一个弱分类器的训练数据,每个新的弱
分类器的建立都是为了使得之前弱分类器的残差往梯度
方向减少。
将弱分类器联合起来,使用累加机制代替平均投票机
制。
与 Adaboost 算法不同,Gradient Boosting 算法在迭代的时候选择
梯度下降的方向来保证最后的结果最好。损失函数用来描述模型的
“靠谱”程度,假设模型没有过拟合,损失函数越大,模型的错误率
就越高。如果模型能够让损失函数持续下降,就说明模型在不停地改
进,而最好的方式就是让损失函数在其梯度方向上下降。
【例 8.50】GradientBoostingRegressor 的实现。
Python 中的 Scikit-Learn 包提供了 GradientBoostingRegressor 和
GBDT 的函数接口,可以很方便地调用函数完成模型的训练和预测。Gradient Boosting 算法
模型图如图 8.41 所示。图 8.41 Gradient Boosting 算法
可以发现,如果要用 Gradient Boosting 算法,那么在 sklearn 包
里调用还是非常方便的,几行代码即可完成,大部分的工作应该是在
特征提取上。
8.27 本章小结
使用 Python 进行数据分析是最近几年才开始火起来的,之前网上
很多的资料都是关于 Python 网页开发的。但使用 Python 进行数据分析
的侧重点已经完全不一样了。
资源评论
妙屋山最后的真龙
- 粉丝: 183
- 资源: 31
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功