机器学习(八):Bagging与随机森林

      • 引言
      • 一、Bagging
          • 1.基本思路
          • 2.算法
      • 二、随机森林(Random Forest,RF)

引言

    Bagging基于自助采样法(bootstrap sampling),采样出T个含N个训练样本的采样集,然后基于每个采样集训练出一个基学习器,最后将这些基学习器进行结合得到最终结果。
    随机森林(Random Forest,RF)是Bagging的一个扩展变体,以决策树为基学习器,并针对基决策树引入了随机属性选择,即传统决策树在选择划分属性时是在当前结点的属性集合(假定有n个属性)中选择最优属性,而RF是对基决策树的每个结点,随机选择k个属性(k≤n)进行选择。

一、Bagging

1.基本思路

    Bagging基于我们在简介中介绍过的自助采样法,使用自助采样法,我们可采样出T个含N个训练样本的采样集,其中约有63.2%的样本出现在采用集中。然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合。这就是Bagging的基本流程。
    在对预测输出进行结合时,Bagging通常对分类任务使用简单投票法(即在测试样本用T个基学习器进行分类后,得到的T个结果中,选择得票最高的类),对回归任务使用简单平均法。若分类预测时出现两个类收到同样票数的情形,则最简单的做法是随机选择一个,也可进一步考察学习器投票的置信度来确定最终胜者。
    与标准AdaBoost只适用于二分类任务不同(为处理多分类或回归任务,AdaBoost需进行修改),Bagging能不经修改地用于多分类、回归等任务。

2.算法

算法1
输入:训练集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } D=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} D={(x1,y1),(x2,y2),,(xN,yN)};基学习算法;训练轮数 T T T
过程:
for t=1,2,…,T do
    用自助采样法生成一个大小为N的样本集Dt
    在样本集Dt上训练一个基学习器
end for
输出: H ( x ) = a r g max ⁡ y ∈ Y ∑ t = 1 T I ( h t ( x ) = y ) H(x)=arg \max_{y∈Y}\sum_{t=1}^TI(h_t(x)=y) H(x)=argmaxyYt=1TI(ht(x)=y)
(如果参数为真则I(.)=1,否则I(.)=0)
例1
    为了说明Bagging如何进行,考虑表1给出的训练集。设x表示一维属性,y表示类标号。假设使用这样一个分类器,它是仅包含一层的二叉决策树,具有一个测试条件x≤k,其中k是使得叶结点熵最小的分类点。这样的树也称为决策树桩(decision stump)。
(关于熵的定义在决策树一文中已有介绍,这里不再重述)

x 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
y 1 1 1 -1 -1 -1 -1 1 1 1
表1
    不进行Bagging,能产生的最好的决策树桩的分裂点为x≤0.35或x≤0.75。无论选择哪一个,树的准确率最多为70%。假设我们在训练集上应用10个自助样本集的袋装过程,下面给出每轮Bagging选择的训练样本及基于该训练样本训练出的基分类器。

机器学习(八):Bagging与随机森林_第1张图片
    通过对每个基分类器所作的预测使用多数表决来分类表1给出的整个训练集,下图1给出了预测结果。由于标记类别是-1或+1,因此应用多数表决等价于对y得预测值求和,然后考察结果的符号(参看图1第二行到最后一行)。注意,组合分类器完全正确地分类了原始训练集中的10个样本。

机器学习(八):Bagging与随机森林_第2张图片

图1


二、随机森林(Random Forest,RF)

    随机森林是Bagging的一个扩展变体。RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。
    具体来说,传统决策树在选择划分属性时是在当前结点的属性集合(假定有n个属性)中选择最优属性;而在RF中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含 k k k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。这里的参数k控制了随机性的引入程度:若令 k = n k=n k=n,则决策树的构建与传统决策树相同;若令 k = 1 k=1 k=1,则是随机选择一个属性用于划分;一般情况下,推荐值 k = l o g 2 n 。 k=log_2n。 k=log2n









以上全部内容参考书籍如下:
周志华《机器学习》
《数据挖掘导论(完整版)》人民邮电出版社
Peter Harrington《Machine Learing in Action》

你可能感兴趣的:(机器学习算法)