【机器学习】各种树算法的总结

这个总结主要为XGboost而写,而Boosting方法是集成学习的一种,所以在最开始有必要记录一下集成学习的概念。

集成学习的目的是通过结合多个基学习器的预测结果来改善单个学习器的泛化能力和鲁棒性。目前的集成学习方法大致分为两大类:即个体学习器之间存在强依赖关系、必须串行生成的序列化方法,代表就是Boosting;以及个体学习器间不存在强依赖关系、可同时生成的并行化方法,代表是Bagging和Random Forest。

Boosting:不同的分类器是通过串行训练而获得的,每个新分类器都根据已训练的分类器的性能来进行训练。Boosting是通过关注被已有分类器错分的那些数据来获得新的分类器。 Boosting分类的结果是基于所有分类器的加权求和结果的,而Boosting中的分类器权重并不相等,每个权重代表对应的分类器在上一轮迭代中的成功度。

Bagging:可以简单的理解为:放回抽样,多数表决(分类)或简单平均(回归),同时Bagging的基学习器之间属于并列生成,不存在强依赖关系。 

1. CART树( Classification And Regression Tree)

CART树是最典型的二叉决策树,是我们学校数据挖掘课上老师一定会推导的模型。CART的C和R分别代表它有分类和回归两种类型。

CART构建的核心过程一是分裂点依据什么来划分。CART分类树划分的依据是叶子节点的基尼系数;CART回归树划分的依据是分裂后的GINI_Gain,GINI_Gain应该是一种衡量预测误差的指标。剩下还有过拟合、剪枝等等细节,也就是老师所讲的东西。

核心过程二是分类后的节点预测值是多少。分类树与回归树有区别:作分类决策树时,待预测样本落至某一叶子节点,则输出该叶子节点中所有样本所属类别最多的那一类(这也是老师讲课时的那一种);作回归决策树时,待预测样本落至某一叶子节点,则输出该叶子节点中所有样本的均值(虽然这个是很粗糙的方法)。

2. Xgboost

Xgboost是很多CART回归树的集成(集成学习)。这种集成不是Random Forest那种各个决策树独立运作的模式,Xgboost算法下一棵决策树输入样本会与前面决策树的训练和预测相关,是集成学习下Boosting方式的一种。

首先明确目标:希望建立K个回归树,使得树群的预测值尽量接近真实值(准确率)而且有尽量大的泛化能力(更为本质的东西)。目标函数如下:

不求甚解的讲,函数前一部分衡量预测误差,后一部分衡量树的复杂度,整个目标函数要求构建的树尽可能分类准确同时不复杂能泛化。这个看起来很美好的目标函数在具体实现时,使用了贪心策略+二次最优化的方式,具体怎么应用这些方法的参见https://blog.csdn.net/github_38414650/article/details/76061893这篇文章,讲解的很通俗。

猜你喜欢

转载自blog.csdn.net/orsonV/article/details/81298083