深度 | 机器学习集成算法:XGBoost思想
2017-12-13 00:00
627 查看
随机森林是在决策树的基础上,放入许多棵决策树,并行的,独立的构造出每棵决策树,树与树之间没有关系,通过这种方式达到优化提升的目的。
随机森林算法,再加入第 k 棵树时,没有考虑前面的 k - 1 棵,只是随机的往森林里加一棵。与之相对的是,每次往森林里扔第 k 棵树的时候,要考虑前面的 k-1 棵树,并且加入这 k 棵树后,预测的效果必须要好才行,不好的话,就不能放入这 k 棵树,关于如何选择第 k 棵树以达到优化提升的过程,就是 XGBoost 的精华所在。
XGBoost算法解决的核心问题:如何选择第 k 棵树,而不是像随机森林那样随便往里面扔树。
下面举个例子先说明下问题的背景,要预测某个群体玩电脑游戏的可能性大小,在此我们要构建了 tree1,根据 age 和 male 这两个特征,得到了tree1,每个叶子节点不是简单的给出玩还是不玩电脑游戏,而是给出它的得分值(概率值相关),这是比较有意义的,之前,说到过,高斯混合模型(GMM)在做聚类任务时,最后也是给出每个样本属于每个分类的得分值,这就比KNN算法简单的给出每个样本属于某个簇,而不能给出属于每个簇的概率值,有时候要有意义的多。
根据 tree1,可以判断小男孩这个样本,玩电脑游戏的得分值为 +2,而小女孩呢得分值为 +0.1 ,爷爷奶奶们得分为 -1 。而根据实际的样本值得出小男孩玩游戏的得分值为+3,爷爷玩游戏的得分值为 +0.1 ,奶奶玩游戏的得分值为 -3 。
现在又来了 tree2,也就是说树的结构已经知道了,可以看出小男孩和爷爷的得分值都为 +0.9 。
所以,根据这两颗树,我们得出,小男孩玩电脑游戏的得分值为 +2.9,爷爷玩电脑游戏的得分值为 -0.1 。
问题来了,那么根据 tree2这个树的决策结构,我们是否该选择 tree2 呢? 我们可以这样构思这个问题,tree1和tree2 我们可以综合起来看成一颗决策树来考虑,这样可以借用决策树的一些思想,比如加入 tree2 后,综合考虑得出的信息增益是否大于我们不加入tree2时的好,如果没有满足,那么还是不要这颗 tree2,如果能大于阈值,就可以说它提升了模型的预测精度,要!
可以看到加入tree2后,小男孩的最终得分值更接近 +3了,而爷爷的得分也更接近了目标值。所以tree2 要加入进来。
以上就是XGBoost在做优化时主要思想。总结下,XGBoost和随机森林虽然用的基础模型都是决策树,但是它们在本质上是不同的,XGBoost是串行的组合决策树,也就是先有了第一个,然后根据某个算法计算出要不要第二棵树,如果要,才有了第二个,依次类推,不可能并行地同时处理3个;而随机森林是并行的组合,意思是可以并行计算,一次并行处理多个。
本文转载自公众号“算法channel”
相关文章推荐
- 机器学习集成算法:XGBoost思想
- 机器学习集成算法:XGBoost思想
- 机器学习集成算法:XGBoost思想
- Python数据分析与机器学习-Xgboost集成算法
- 干货 | 机器学习集成算法:XGBoost模型构造
- 机器学习总结(lecture 17)算法:XGBoost(再理解!!)
- 集成算法-Xgboost
- 集成算法-xgboost/bagging/voting
- 机器学习教程 之 集成学习算法: 深入刨析AdaBoost
- 机器学习:在Android中集成TensorFlow (深度学习,AI,人工智能,DL,ML,神经网络)
- 机器学习十大算法的每个算法的核心思想、工作原理、适用情况及优缺点
- 百度DMLC分布式深度机器学习开源项目(简称“深盟”)上线了如xgboost(速度快效果好的Boosting模型)、CXXNET(极致的C++深度学习库)、Minerva(高效灵活的并行深度学习引擎)以及Parameter Server(一小时训练600T数据)等产品,在语音识别、OCR识别、人脸识别以及计算效率提升上发布了多个成熟产品。
- 机器学习——分类算法2:决策树 思想和代码解释
- 干货丨深度解析机器学习五大流派中主算法精髓
- 机器学习——分类算法3:朴素贝叶斯(Bayes) 思想 和 代码解释
- 机器学习18-XGBoost的推导过程
- 机器学习十大算法的每个算法的核心思想、工作原理、适用情况及优缺点
- 机器学习故事汇-集成算法
- 【备忘】冲击年薪50万之从数学基础python机器学习到深度学习算法学习路线视频教程
- 机器学习-->集成学习-->Xgboost,GBDT,Adaboost总结