boost与decision tree
来源:互联网 发布:校园网络拓扑图设计 编辑:程序博客网 时间:2024/06/05 03:51
在提升与决策树相互结合的时候,就衍生出一些更加高效的算法,这里我先简述一些:
1)提升树算法:提升树是以分类树或回归树为基本分类器的提升方法。
对于分类问题的提升树,将adaboost里面的基分类器限制为二类分类树即可;
对于回归问题的提升树,是拟合当前模型的残差来递归得到新的分类树,然后用加法模型结合这些分类树。
2)GBDT算法:全称是梯度提升决策树算法。
首先解释梯度提升,梯度提升的关键是利用损失函数的负梯度在当前模型的值作为回归问题提升树算法中的残差的近似值。
决策树在这里是特定指回归树,关于回归树的知识在李航的书中关于决策树一章中可找到。
所以其实GBDT就是这两者的结合。
从这句话中我们知道,GBDT只针对回归问题,并且是回归问题提升树的一个进阶版(简化版),只是将残差找到了一个近似替代而已。
3)随机森林
随机森林其实与前两种不太一样,它是基于bagging的基础上扩展的一个变体,它希望的是根据每一组尽量不同的数据集来训练出一个基学习器,因此在训练过程中引入了随机属性选择。
首先在总数据集中随机选取一部分样本,共选取T(基学习器的总数)次,选取目的是希望这T次的样本集尽量不同,一般选取的是自助采样法。
根据每一个样本集,在训练决策树的时候,先随机选取k个属性(不是全部的属性),然后在这k个属性中选择一个最优属性用于划分。
最后将训练出来的多个基学习器组合起来。
4) xgboost (主要参考陈天奇PPT整理)
首先讲监督学习的参数求取方式。线性模型和非线性模型取决于假设函数的选取,一般选择
优化对象
但是在boost tree中,因为要训练的参数不是一个具体数值,而是一个函数,
如何学习这个目标函数呢,采用的是集成方法,每增加的一个函数
如前所述,当采用的是平均误差损失函数的时候,
可以看出圈出的那部分就是残差,所以说回归树训练就是递归的使用新函数来拟合残差。扩展到一般情况呢?
下面的推导过程参考xgboodt原理
注意几点:
1.每次对第t颗树的创建都是为了优化整个模型的objective,所以我们每次研究的都是对t颗树增加一个分割点是否对全局判断有益;
2.选取分割点的时候其实就是选取特征的最佳分割点的时候,当该分割点没有使得增加的增益大过其带来的冗余则不增加该特征值,结束对该特征的遍历;
3.需要自定义损失函数,损失函数决定了
4.参数调节,例如
- boost与decision tree
- Gradient Boost Decision Tree(模型测试报告)
- GBDT(Gradient Boost Decision Tree)
- ML-Gradient Boost Decision Tree(+ Treelink)
- GBDT:Gradient Boost Decision Tree算法
- CART分类与回归树与GBDT(Gradient Boost Decision Tree)
- 机器学习——Gradient Boost Decision Tree(&Treelink)
- 机器学习——Gradient Boost Decision Tree(&Treelink)
- 机器学习——Gradient Boost Decision Tree(&Treelink)
- 机器学习——Gradient Boost Decision Tree(&Treelink)
- decision tree
- decision tree
- decision tree
- Decision Tree
- Decision Tree
- Decision Tree
- Decision Tree
- Decision Tree
- mysql主从复制
- 强化学习调参方法/DeepRLHacks中文版
- 分布式缓存Redis之Ubuntu常用命令
- [Android][Android UI需要弄清楚的一些事]
- c# 垃圾回收之定时器被提前回收
- boost与decision tree
- Android PopupWindow怎么合理控制弹出位置(showAtLocation)
- spring boot 的 pom.xml引入自定义的jar包
- Spring Data JPA
- Python定时器
- 数字经济新业态:各省排名在这里!
- ajax 封装
- Unicode字符集和多字节字符集关系
- 【干货】智慧环保:当环保搭上互联网