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在全样本上的泛化误差:
分歧项:
集成的泛化误差:
个体学习器的泛化误差加权均值:
个体学习器的加权分歧值:
集成均方误差 = 泛化误差平均 - 分歧平均;
泛化误差平均越小,分歧平均越大,则集成均方误差越小。
以上为误差分歧分解,个体学习器准确性越好,多样性越大,则集成效果越好。
多样性增强:
数据样本扰动
数据属性扰动
输出表示扰动
算法参数扰动