ML:随机森林、GBDT、XGBoost

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ShellDawn/article/details/88876603

RF、GBDT、XGBoost都属于集成学习。
通过结合多个基学习器都预测结果来改善单个学习器的泛化能力。

集成学习分为两大类:

  • boosting:个体学习器之间存在强依赖关系、必须串行生成的序列化方法。
  • bagging:个体学习器之间不存在强依赖关系,可同时生成的并行化方法。

RF:
提到随机森林就不得不提Bagging。
Bagging简单理解为,放回抽样、多数表决。

1、随机选择样本(放回抽样,每棵树采用60%样本)
2、随机选择特征,每个决策树只选特征集合的子集,然后再采用最优划分。
3、构建决策树,每棵决策树最大可能生长不剪枝,过拟合。
4、随机森林投票,分类任务采用简单投票法,回归任务采用简单平均法。

起始性能较差,随着学习器数目增多,收敛到更低的泛化误差。
在噪声较大的分类或回归问题上容易过拟合。

能够处理高纬数据,在训练完毕后,给出特征的重要性。


GBDT:

不得不提boosting。
每个新分类器根据已经训练的分类器的性能来训练。
Boosting通过关注被已有分类器错分的那些数据来获得新的分类器。
(注意:错分的数据)

每一次计算都是为了减少上一次的残差。

GradientBoost中,使之前的模型残差往梯度下降的的方法。
利用损失函数的负梯度在当前模型的值作为残差的近似值,进而拟合一颗CART回归树。

GBDT都是CART回归树、而不是分类树。

扫描二维码关注公众号,回复: 5721751 查看本文章

优点:灵活处理各类型数据。
缺点:难以并行训练数据。


XGB:

最大的认知在于其能够自动运用CPU多线程进行并行计算。

GBDT在优化时只用到一阶导数,XGB对代价函数进行二阶太累展开,得到一阶和二阶导数。

XGB在代价函数中加入了正则项,用于控制模型对复杂度。
shrinkage(缩减),相当于学习率,XGB在进行完一次迭代时,会将叶子节点的权值乘上该系数,消弱每棵树的影响,让后面有更大的学习空间。

XGB对分裂节点处理上做了优化。

猜你喜欢

转载自blog.csdn.net/ShellDawn/article/details/88876603