机器学习概念----集成算法

集成算法(ensemble arithmetic)

集成算法包括bagging and boosting

组合bagging(并行化)

同时用多个分类器(一般是决策树)对训练集中随机样本训练,投票表决
对分类问题:将上步得到的k个模型采用投票的方式得到分类结果
对回归问题,计算上述模型的均值作为最后的结果。

代表算法:随机森林

提升boosting(序列化)

每次使用的是全部的样本,每轮训练改变样本的权重。

下一轮训练的目标是找到一个函数f来拟合上一轮的残差。当残差足够小或者达到设置的最大迭代次数则停止。

Boosting会减小在上一轮训练正确的样本的权重,增大错误样本的权重。(对的残差小,错的残差大)

AdaBoost算法
多个弱分类器串行,错误加权

GBDT(gradient boosting decision tree)
以决策树为基函数,通过负梯度来识别问题,通过计算负梯度来改进模型

GBDT方式是使用代价函数对上一轮训练出的模型函数f的偏导来拟合残差

GBDT的核心思想就是:串行训练n(n > 2)棵决策树,其中第i(1 < i ≤ n)棵树学习第i - 1棵树的负梯度(可理解为残差或增量),n棵树的输出结果累加作为最终输出结果

xgboost(extreme gradient boosting)
对损失函数做了二阶的泰勒展开,并在目标函数之外加入了正则项对整体求最优解,用以权衡目标函数的下降和模型的复杂程度,避免过拟合

bagging和boosting比较

相同之处都是用多个基分类器

不同在于他们的基分类器的关联性不同,bagging是没啥关联.并行出各自的结果.然后投票,boosting是串行.通过提升错误的权重来加强训练.达到整体最优

并且bagging是随机抽取训练集中样本进行训练,而boosting每次都是训练全部数据

bagging泛化能力强,可以平衡误差,但容易过拟合
boosting泛化能力强,错误率低,无参数调节(自行训练错误加权),但对离群点(错误)敏感

猜你喜欢

转载自blog.csdn.net/weixin_42394432/article/details/82938276
今日推荐