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

1.集成学习

通过多个学习器的集成构建来组合输出。基学习器根据基本学习算法来学习训练,组合学习器将基学习器的结果进行组合来输出最终结果。若想组合学习器最终结果效果好,需要基学习器学习能力不能太差,其次需要基学习器之间具有差异性。

二分类问题 y = { +1,  -1}  真实函数f 

T个集成学习器使用投票法进行决策

假设每个基学习器错误率独立,则集成的错误率为:

即随着T基学习器数量增加,组合学习器的错误率下降。

基学习器是为解决同一个问题训练而来,每个基学习器的错误率一般不相互独立,很难满足。

目前主要的集成方法:

1.个体之间存在强依赖关系,必须串行生成方式  Boosting

2.个体之间没有强依赖关系  可以同时生成的并行式  Bagging

2.Boosting集成

先从初始训练集训练一个基学习器,根据基学习器的表现对训练样本分布进行调整,使先前学习器分类错误的样本在后续中得到更多的关注,如此循环,直到指定的学习器数量为止。

以AdaBoost为例,基学习器的线性组合

最小化指数损失函数:

对于上式求关于H(x)的导数:

若指数损失函数最小,则分类错误率也最小。

第一个基分类器h1是由训练样本直接得到的,后面基分类器ht基于分布Dt产生后,分配权重at应使atht指数损失函数最小,

其中:

上式为分类器权重更新公式。

希望ht纠正Ht-1全部错误,最小化:

泰勒展开式:

理想的基学习器:

是一个常数,

f(x),h(x)={-1,+1}

理想的ht在分布Dt下达到最小化损失函数。

Dt推导出Dt+1分布:

Boosting主要关注降低偏差。

算法流程如下:

3.Bagging

通过自主采样法,采集产生T个含m个样本的训练集,然后基于每个采样集训练一个基学习器,将这些学习器进行组合。

Bagging主要降低方差,在不剪枝决策树,神经网络等易受样本数据扰动的基学习器上效果更加明显。

4.随机森林RF

以决策树作为基学习器,在进行基节点的属性选择时,先随机产生一个包含k个属性的子集,然后选择一个最优的属性进行划分。随机森林中基学习器的多样性不仅能够根据数据样本扰动,还能够根据属性扰动来实现。

5.结合策略

学习器结合的好处:

1.统计,单个学习器可能因误选而导致泛化能力不强,多个学习器可以缓解。

2.计算,单个学习器可能会陷入局部最优,多个学习器可以避免局部最优。

3.表示,真实假设可能并不在单个学习器的假设空间内,多个结合更好包含真实假设。

T个学习器进行集成{h1(x), h2(x)....ht(x)}  hi在样本x上输出为hi(x)

1.平均值:

加权平均:

2.投票法:

类别属性集合c={c1,c2..cn}

hi在x的输出为

绝对多数投票:

相对多数投票:

加权投票:

3.学习法

当样本数据较多时,可以采用另一个学习器来进行结合Stacking

6.多样性

个体学习器h1,h2....ht  组合输出回归任务f,

对于x, hi的分歧为:

集成的分歧为:

表征了不同学习器在样本x上的不一致性,即在一定程度上表示了不同学习器的多样性。

个体学习器hi的均方误差:

集成H的均方误差:

个体学习器的加权均值:

p(x)表示样本的概率密度:

个体学习器hi在全样本上的泛化误差:

分歧项:

集成的泛化误差:

个体学习器的泛化误差加权均值:

个体学习器的加权分歧值:

集成均方误差 = 泛化误差平均 - 分歧平均;

泛化误差平均越小,分歧平均越大,则集成均方误差越小。

以上为误差分歧分解,个体学习器准确性越好,多样性越大,则集成效果越好。

多样性增强:

数据样本扰动

数据属性扰动

输出表示扰动

算法参数扰动

猜你喜欢

转载自blog.csdn.net/u014106644/article/details/83474861