集成学习, Ensemble Learning. 通过多个学习器
来完成学习任务.
图1-1 显示出集成学习的一般结构: 先产生一组个体学习器, 再用某种策略把它们结合起来.
图1-1 集成学习示意图
集成学习通过对多个学习器进行结合, 常可获得比单一学习器优越的泛化性能.
集成学习方法大致可分为:
- 串行化生成基学习器
- AdaBoost
- 提升树
- 并行化生成基学习器
- Bagging
- 随机森林
wikipedia:Boosting_(machine_learning)
Boosting是一类机器学习算法, 思想是通过迭代训练出一组基学习器, 再加以组合.
常用的有AdaBoost与提升树.
大致过程见下.
基学习器
.基学习器
做错的训练样本在后续受到更多关注. 然后基于此调整后的样本分布来训练下一个基学习器.约定符号:
m=1,2, … , M, 为迭代的轮次.
Dm=(wmi,...,wmn) D m = ( w m i , . . . , w m n ) , 记为第k轮样本的权值分布. 相应地 wmi w m i 表示第i个样本在第m轮的权重.
Gm(x) G m ( x ) 为第m次迭代学习到的基学习器.
em e m 为 Gm(x) G m ( x ) 在训练集上的表现误差.
αm α m 为Gm的系数.
算法流程见下:
- 根据特定的学习算法, 由 Dm D m 学得 Gm(x) G m ( x )
- 根据特定的损失函数, 计算 em e m
- 计算
αm=12log1−emem(2.1-1) (2.1-1) α m = 1 2 log 1 − e m e m- 计算下一轮的样本分布权值 Dm+1 D m + 1
wm+1,i=wm,iZmexp(−αmyiGm(xi))Zm=∑i=1Nwm,iexp(−αmyiGm(xi)) w m + 1 , i = w m , i Z m exp ( − α m y i G m ( x i ) ) Z m = ∑ i = 1 N w m , i exp ( − α m y i G m ( x i ) )- 重复步骤 1-4, 得到最终的弱分类器的线性组合
f(x)=∑m=1MαmGm(x) f ( x ) = ∑ m = 1 M α m G m ( x )
Zm是规范化因子.
由式 (2.1-1)知, αm α m 随 em e m 的减小而增大, 所以误差率小的基学习器最终发挥的作用更大.
统计学习方法, 李航, P140。根据阀值对一组一维数据做二分类(线性不可分)。
假设第m轮后, 计算m+1轮得到的权重分布为w, 那么m+1轮基分类器的学习目标就是:
可见 参考[1].
代表是GBDT, Gradient Boosting Decison Tree.
AdaBoost算法是1995年由Freund和Schapire提出的, 提升树是2000年由Friedman提出的.
与Adaboost调整样本权重不同, 提升树通过拟合已学习树的残差来迭代学习回归树.
通过经验风险最小化
特别地, 当损失函数是差的平方的时候,
Q:如何利用梯度迭代构造第m棵树?
计算每个样本 xi x i 在本轮 t t 迭代的损失负梯度 rti=−∂L(yi,yi^)∂yi^ r t i = − ∂ L ( y i , y i ^ ) ∂ y i ^ , 以 <xi,rti> < x i , r t i > 而不是 <xi,yi> < x i , y i > 为样本来构造新的CART树.
最后重新计算叶子结点中的值.
其对应的叶节点区域 Rtj,j=1,2,...,J R t j , j = 1 , 2 , . . . , J 。其中J为叶子节点的个数。
针对每一个叶子节点里的样本,我们求出使损失函数最小,也就是拟合叶子节点最好的的输出值ctj如下:
通过损失函数的负梯度来拟合,我们找到了一种通用的拟合损失误差的办法,这样无轮是分类问题还是回归问题,我们通过其损失函数的负梯度的拟合,就可以用GBDT来解决我们的分类回归问题。区别仅仅在于损失函数不同导致的负梯度不同而已。
Bagging是并行式集成学习的著名代表.
给定包含m个样本的数据集 Sa S a , 基学习器的样本选择策略见下:
随机森林,Random Forest, 是Bagging的一个扩展变体.
RF在Bagging集成的基础上, 进一步在训练过程中引入了随机属性选择.
具体来说, 传统决策树在/选择划分属性时,是在当前节点的属性集合中选择一个最优属性; 而在RF中, 对基决策树的每个节点, 先从当前节点的属性集合中随机选择一部分(比如从d个属性中随机选k个), 再从k个中选择一个最优属性.
这里的参数 k k 控制了随机性的引入程度. 一般情况下推荐值 k=log2d k = log 2 d .
用随机的方式去建一个森林, 里面有若干棵决策树, 建成之后怎么用呢?
预测样本进入时,森林中的每棵决策树分别进行判断,然后看看哪种判断被选择最多,就预测这个样本为哪一类。
随机森林简单, 易实现, 计算开销小, 令人惊奇的是, 它在很多现实任务中展现出强大的性能, 被誉为”代表集成学习技术水平的方法”.
用于回归任务.
假定集成含有T个基学习器, 第i个基学习器的输出为 hi(x) h i ( x ) .
在对预测输出进行结合时, 对于分类任务, 通常用简单投票法; 对于回归任务, 通常用简单平均法.