引言
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
输入:训练集;基学习算法;训练轮数
过程:
for t=1,2,…,T do
用自助采样法生成一个大小为N的样本集Dt
在样本集Dt上训练一个基学习器
end for
输出:
(如果参数为真则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给出的整个训练集,下图1给出了预测结果。由于标记类别是-1或+1,因此应用多数表决等价于对y得预测值求和,然后考察结果的符号(参看图1第二行到最后一行)。注意,组合分类器完全正确地分类了原始训练集中的10个样本。
二、随机森林(Random Forest,RF)
随机森林是Bagging的一个扩展变体。RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。
具体来说,传统决策树在选择划分属性时是在当前结点的属性集合(假定有n个属性)中选择最优属性;而在RF中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含个属性的子集,然后再从这个子集中选择一个最优属性用于划分。这里的参数k控制了随机性的引入程度:若令,则决策树的构建与传统决策树相同;若令,则是随机选择一个属性用于划分;一般情况下,推荐值
以上全部内容参考书籍如下:
周志华《机器学习》
《数据挖掘导论(完整版)》人民邮电出版社
Peter Harrington《Machine Learing in Action》