引言
想要得到泛化性能强的集成,集成中的个体学习器应尽可能相互独立,但是相互独立很难做到,我们可以做的是使基学习器尽可能具有较大的差异。
Bagging
Bagging是并行式集成学习方法的著名代表,它是基于自助采样法(有放回的取样)来提高学习器泛化能力的一种很高效的集成学习方法。
Bagging的策略:
- 从样本集
D
中用Bootstrap采样选出
n 个样本,执行 m 次,选出m 个样本子集 {D1,D2,...,Dm} - 在所有属性上,分别对应这
m
个样本子集建立
m 个学习器 {h1(x),h2(x),...,hm(x)} - 将这 m 个学习器放在各自的训练数据上进行学习
- 通过投票法或平均法对这
m 个学习器进行结合
由于Bagging采用的是Bootstrap采样,那么基学习器大概只使用了初始训练集中越63.2%的样本,剩下越36.8%的样本可以用作验证集来对泛化性能进行估计。
随机森林
随机森林
(RandomForest)
是以决策树为基学习器构建Bagging集成的基础上进一步在决策树的训练过程中引入了随机属性选择。
随机森林的策略
- 从样本集中用Bootstrap采样选出n个样本
- 在树的每个节点上,从所有属性中随机选择k个属性,选择出一个最佳分割属性作为节点,建立决策树,k一般选为 log2d , d 表示属性的总个数
- 重复以上两步
m 次,建立 m 棵决策数 - 这m棵决策树形成
RandomForest
随机森林中基学习器的多样性不仅来自样本扰动,还来自属性的扰动,因此最终集成的泛华性能有显著的提高。
结合策略
平均法
Bagging对回归任务,或者对数值型输出,常见的组合策略是使用平均法。
- 简单平均法
H(x)=1TΣTi=1hi(x) - 加权平均法
H(x)=ΣTi=1wihi(x)
其中 wi 是个体学习器 hi 的权值,通常要求 wi≥0,ΣTi=1wi=1
现实任务中的训练样本通常不充分或者是存在噪声的,这会导致我们学习得到的权值不完全可靠,对与规模较大的集成来说,所需要学习的权值较多,又可能会导致过拟合问题,因此加权平均法未必一定优于简单平均法
投票法
Bagging对分类任务,常见的组合策略是使用投票法。设学习器
hi
将从类别标记集合
{c1,c2,...,cN}
中预测出一个标记,我们将
hi
在样本
x
上的预测输出表示为一个
- 绝对多数投票法
f(n)=⎧⎩⎨cj,reject,if ΣTi=1hji(x)>0.5ΣNk=1ΣTi=1hki(x);otherwise
即若某标记得票过半数,则预测为该标记,否则拒绝预测。 - 相对多数投票法
H(x)=cargmaxc∑Tt=1hji(x)
即预测为得票最多的标记,若有多个标记得最高票,则从中随机选取一个 - 加权投票法
H(x)=cargmaxc∑Tt=1wihji(x)
与加权平均法类似,其中 wi 是个体学习器 hi 的权值,通常要求 wi≥0,ΣTi=1wi=1 - 学习法
当训练数据很多的时候,学习法是一种很好的策略,Stacking 是学习法的典型代表,我们将个体学习器称为初级学习器,用于结合的学习器称为次级学习器或元学习器。
原理:
从初始的数据集训练出初级学习器,然后生成一个数据集,即初级学习器的输出来训练次级学习器,初级学习器的输出被当作样例输入的特征 ,初始样本的标记仍当作样本标记
注意事项:
次级训练集是利用初级学习器参数的,若直接使用初级学习器的训练集产生次级训练集,会有较高的过拟合风险,因此一般是通过使用交叉验证或留一法的方式用训练初级学习器为使用的样本来参数次级学习器的训练样本。