1. Bagging

   Bagging基于自助采样法,给定包含m个样本的数据集,我们先随机取出一个样本放入采样集中,再把该样本放回初始数据集中,使得下次采样仍肯能被选中,这样经过m次操作,我们得到m个样本的采样集,照这样,我们可采样出T个含m个训练样本的采样集,然后基于每个采样集训练一个基学习器,再将这些学习器进行结合。
  在对预测输出进行结合时,Bagging通常对分类任务使用简单投票法,对回归任务使用简单平均法。

2. 随机森林 RF

  RF是以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择,即传统决策树在划分属性时是在当前节点的属性集合中选择一个最优属性,而在RF中,对基决策树的每个节点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。

2.1 对于基学习器的“多样性”

  Bagging 仅通过样本扰动,即通过初始训练集采样而来不同,RF不仅来自样本扰动,还来自属性扰动,这就使得最终集成的泛华性能可通过个体学习器之间的差异度的增加而进一步提升。
  样本的随机抽样可以用均匀分布的随机数构造,如果有随机森林确定因子权重 随机森林 样本权重_随机森林个训练样本,只需要将随机数变换到区间随机森林确定因子权重 随机森林 样本权重_决策树_02$,每次抽样时生成该区间的随机数,然后选择编号为该随机数的样本。对特征分量的采样时无放回抽样,可以用洗牌算法实现。

2.2 随机森林对于缺失值的处理

参考随机森林 根据随机森林创建和训练的特点,随机森林对缺失值的处理:

给缺失值预设估计值,比如数值型特征,一般选择中位数或众数作为估计值;

根据估计的数值,建立随机森林,把所有的数据放进随机森林跑一遍,记录每一组数据在决策树中分类的路径;

引入相似度矩阵,几率数据之间的相似度,判断哪组数据与缺失数据路径相似;

如果缺失值是类别变量,通过权重投票得到新的估计值,如果是数值型变量,通过加权平均得到新的估计值,如此迭代,直到得到稳定的估计值。

2.3 包外误差

   训练每一棵决策树时都有部分样本未参与,利用未参与训练的样本作为测试样本,测试的误差称为包外误差(out of bag, 缩写为oob)。包外误差基本与交叉验证得到的误差一致,因此,包外误差可以作为泛华误差的估计。对于分类问题,包外误差定义为被错分的包外样本数与总包外样本数的比值。对于回归问题,所有包外样本的回归误差和除以包外样本数。

2.4 变量的重要性

  随机森林可以在训练过程中输出变量的重要性,即哪个特征对分类更有用。实现的方法有两种:Gini法和置换法。

2.4.1 置换法的原理

   如果某个特征很重要,那么改变样本的特征值,那样本点的预测结果就很容易出现错误。也就是说,这个特征值对分类结果很敏感。反之,如果一个特征对分类不重要,随便改变它对分类结果没多大影响。

   对于分类问题,在训练某决策树时在包外样本中随机挑选两个样本,如果要计算某一变量的重要性,则置换这两个样本的这个特征值。假设置换前样本的预测值为随机森林确定因子权重 随机森林 样本权重_决策树_03, 真实标签为随机森林确定因子权重 随机森林 样本权重_随机森林_04, 置换之后的预测值为随机森林确定因子权重 随机森林 样本权重_随机森林_05。变量的重要性计算公式为

随机森林确定因子权重 随机森林 样本权重_随机森林_06


其中,随机森林确定因子权重 随机森林 样本权重_决策树_07为包外样本数,随机森林确定因子权重 随机森林 样本权重_随机数_08为包外集合中在进行特征置换之前被正确分类的样本数,随机森林确定因子权重 随机森林 样本权重_决策树_09为包外集合中特征置换之后被正确分类的样本数。二者的差反映的是置换前后的分类正确率的变化。

   对于回归问题,变量重要性的计算公式为

随机森林确定因子权重 随机森林 样本权重_随机数_10

其中,随机森林确定因子权重 随机森林 样本权重_随机森林确定因子权重_11为所有训练样本中标签绝对值的最大值。除以这个最大值是为了数值计算的稳定。

  上面定义的均为单棵决策树的变量的重要性,计算每棵决策树的重要性之后,对该值取平均值得到随机森林的变量重要性,再对该值归一化,得到最终的重要性。

2.5 结合策略

随机森林确定因子权重 随机森林 样本权重_随机数_12,其中随机森林确定因子权重 随机森林 样本权重_机器学习_13在示例随机森林确定因子权重 随机森林 样本权重_随机森林_14的输出为随机森林确定因子权重 随机森林 样本权重_随机森林确定因子权重_15

1. 平均法

随机森林确定因子权重 随机森林 样本权重_随机森林确定因子权重_16,最常见的结合策略是使用平均法

1.1 简单平均法

随机森林确定因子权重 随机森林 样本权重_决策树_17

1.2 加权平均法

随机森林确定因子权重 随机森林 样本权重_决策树_18
其中随机森林确定因子权重 随机森林 样本权重_随机森林_19是个体学习器随机森林确定因子权重 随机森林 样本权重_机器学习_13的权重,通常随机森林确定因子权重 随机森林 样本权重_机器学习_21
  一般而言,在个体学习器性能相差较大时宜使用加权平均法,而在个体学习器性能相近时宜使用简单平均法。

2. 投票法

随机森林确定因子权重 随机森林 样本权重_机器学习_13将从类别标记集合随机森林确定因子权重 随机森林 样本权重_随机森林_23预测出一个标记,最常见的结合策略是使用投票法。我们将随机森林确定因子权重 随机森林 样本权重_机器学习_13在样本x上的预测输出表示为一个随机森林确定因子权重 随机森林 样本权重_随机森林确定因子权重_25维向量随机森林确定因子权重 随机森林 样本权重_随机森林_26,其中随机森林确定因子权重 随机森林 样本权重_随机森林确定因子权重_27随机森林确定因子权重 随机森林 样本权重_机器学习_13类别标记随机森林确定因子权重 随机森林 样本权重_机器学习_29上的输出。

2.1 绝对多数投票法

随机森林确定因子权重 随机森林 样本权重_随机森林_30
即若某标记得票过半数,则预测为该标记,否则拒绝预测。

2.2 相对多数投票法

随机森林确定因子权重 随机森林 样本权重_随机森林确定因子权重_31
即预测为得票最多的标记,若同时有多个标记最高票,则从中随机选取一个。

2.3 加权投票法

随机森林确定因子权重 随机森林 样本权重_随机数_32
与加权平均类似,随机森林确定因子权重 随机森林 样本权重_随机森林_19随机森林确定因子权重 随机森林 样本权重_机器学习_34的权重,通常随机森林确定因子权重 随机森林 样本权重_随机森林确定因子权重_35

3. 学习法

  即通过另一个学习器来进行结合,个体学习器称为初级学习器,用于结合的学习器称为次级学习器或元学习器。
  Stacking是学习法的代表,Stacking先从初始数据集训练出初级学习器,初级学习器的输出被当作用于训练次级学习器的样例输入特征,而初始样本的标记仍被当作样例标记。。
  在训练阶段,一般通过使用交叉验证或者留一法的方式,用训练初级学习器未使用的样本产生次级学习器的训练样本。以下以随机森林确定因子权重 随机森林 样本权重_随机森林确定因子权重_36折交叉验证为例
  初始训练集随机森林确定因子权重 随机森林 样本权重_随机森林_37被随机划分为随机森林确定因子权重 随机森林 样本权重_随机森林确定因子权重_36个大小相似的集合随机森林确定因子权重 随机森林 样本权重_随机森林_39随机森林确定因子权重 随机森林 样本权重_随机数_40随机森林确定因子权重 随机森林 样本权重_决策树_41分别表示第随机森林确定因子权重 随机森林 样本权重_随机森林确定因子权重_42折的测试集和训练集。给定随机森林确定因子权重 随机森林 样本权重_随机数_43个初级学习算法,初级学习器随机森林确定因子权重 随机森林 样本权重_机器学习_44通过在随机森林确定因子权重 随机森林 样本权重_机器学习_45上使用第随机森林确定因子权重 随机森林 样本权重_随机森林_46个学习算法而得。对随机森林确定因子权重 随机森林 样本权重_随机数_40中每个样本随机森林确定因子权重 随机森林 样本权重_机器学习_48,令随机森林确定因子权重 随机森林 样本权重_随机数_49则由随机森林确定因子权重 随机森林 样本权重_机器学习_48所产生的次级训练样例的示例部分为随机森林确定因子权重 随机森林 样本权重_随机森林确定因子权重_51,标记部分为随机森林确定因子权重 随机森林 样本权重_决策树_52. 于是,在整个交叉验证过程结束后,从这随机森林确定因子权重 随机森林 样本权重_随机数_43个初级学习器产生的次级训练集是随机森林确定因子权重 随机森林 样本权重_随机数_54然后随机森林确定因子权重 随机森林 样本权重_机器学习_55将用于训练次级学习器。

参考:

  1. 《机器学习》周志华
  2. 《机器学习与应用》雷明