集成学习
一、个体与集成
集成学习(\(ensemble\ learning\))通过构建并结合多个学习器完成学习任务。
集成学习可用于分类问题集成、回归问题集成、特征选取集成、异常点检测集成等。
集成学习思想:通过训练若干个个体学习器,再用某种结合策略,最终形成一个强学习器。
个体学习器有两种选择:
① 所有个体学习器是同种类型,即 “同质” 的。同质集成中个体学习器也称 “基学习器”、“弱学习器”。
比如个体学习器都是由 \(C4.5\) 决策树算法 或 都是由 \(BP\) 神经网络算法从训练集产生。
② 所有个体学习器不是同种类型,即 “异质” 的。异质集成中的学习器也称 “组件学习器” 或直接称个体学习器。
比如个体学习器由 \(SVM\)、逻辑回归、朴素贝叶斯等不同算法产生。
一般说的集成学习方法都是指同质个体学习器。
同质个体学习器按照个体学习器之间是否存在依赖关系分两类:
① 个体学习器之间存在强依赖关系,必须串行生成的序列化方法。代表算法 \(Boosting\) 系列算法。
② 个体学习器之间不存在强依赖关系,可同时生成的并行化方法。代表算法 \(Bagging\)、随机森林系列算法。
二、Boosting
\(Boosting\) 算法,基学习器之间存在强依赖关系,用一张图概括如下:
\(Boosting\) 工作机制:先从训练集用初始权重训练出一个基学习器,根据基学习器的学习误差率来更新训练样本的权重,使学习误差率高的样本的权重变高,在后续受到更多关注。如此重复进行,直到基学习器的个数达到指定值 \(T\),最终将 \(T\) 个基学习器进行加权结合。
\(Boosting\) 系列算法代表 \(Adaboost\) 算法、梯度提升树(\(Gradient\ Boosting\ Decision\ Tree\),\(GBDT\))、\(XGBoost\)、\(LightBGM\)。
三、Bagging
\(Bagging\) 算法,基学习器之间不存在依赖关系,用一张图概括如下:
\(Bagging\) 流程:从训练集用自助采样法采出 \(T\) 个含 \(m\) 个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将基学习器结合。
自助采样法:即有放回的抽样法,采集跟训练集个数 \(m\) 相同的样本,采集 \(T\) 次,得到采样集。
对于一个样本,每次被采集的概率为 \(\frac{1}{m}\)。
在 \(m\) 次采样中没被采集到的概率:
对 \(m\) 取极限:
也就是初始训练集约有 \(63.2\%\) 的样本在采样集中,\(36.8\%\) 没被采集。
对于 \(36.8\%\) 没被采集的数据,称为 “袋外数据”。这些数据没参与训练集的模型拟合,但可作为测试集用于测试模型的泛化能力,这样的测试结果称为 "包外估计"。
随机森林是 \(Bagging\) 的一个扩展,\(RF\) 的基学习器都是 \(CART\) 决策树,并且在决策树的训练过程中,引入特征的随机选择。
四、结合策略
假设集成包含 \(T\) 个基学习器 \(\{h_1,h_2,...h_T\}\),\(h_i\) 在示例 \(\pmb{x}\) 上的输出为 \(h_i(\pmb{x})\)。
1.平均法
对数值型的回归问题,常见的结合策略是平均法。
① 简单平均法(\(simple\ averaging\))
② 加权平均法(\(weighted\ averaging\))
2.投票法
对分类问题,常见的结合策略是投票法。假设预测类别是 \(\{c_1,c_2,...,c_K\}\),对任意的一个预测样本 \(\pmb{x}\),\(T\) 个弱学习器的预测结果分别是 \((h_1(\pmb{x}),h_2(\pmb{x}),...,h_T(\pmb{x}))\).
相对多数投票法,即预测为得票最多的标记,若同时有多个标记获得最高票,随机选取一个。
绝对多数投票法,在相对投票法的基础上,不光要求票数最多,还要求票数过半,否则拒绝预测。
加权投票法,和加权平均法类似,每个基学习器乘以一个权重,最终将各个类别的加权票数求和,最大的值对应的类别为最终类别。
3.学习法
代表方法 \(stacking\),该结合策略不是对基学习器的结果做简单的逻辑处理,而是再加上一层学习器,将训练集的基学习器的学习结果作为输入,训练集的输出作为输出,重新训练一个学习器得到最终的结果。
这种情况下,基学习器称为初级学习器,用于结合的学习器称为次级学习器。对于测试集,首先用初级学习器预测一次,得到次级学习器的输入,再用次级学习器预测一次,得到最终的结果。