Bagging算法与随机森林
2017-02-22 11:00
218 查看
Bagging算法
一、自助采样法
给定包含m个样本的数据集D,我们对它进行采样产生数据集D’:每次随机从D中挑选一个样本,将其拷贝放入D’,然后再将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采样到;这个过程重复执行m次后,我们就得到了包含m个样本的数据集D’,这就是自助采样的结果。显然有一部分样本会在D‘中出现多次,而另一部分样本不出现。样本在m次采样中始终不被采到的概率是:
limm→∞(1−1m)m=1e=0.368
即通过自助采样法,初始数据集D中约有36.8%的样本未出现在样本数据集D‘中。于是我们可将D’用作训练集,D\D’用作测试集,这种做法简称“包外估计”
二、算法描述
我们可以采样出T个含有m个训练样本的采样集,然后基于每个采样集训练出一个集学习器,在将这些基学习器进行结合。在对预测输出进行结合时,Bagging通常对分类任务使用简单投票法,对回归任务使用简单平均法。若分类预测时出现两个类收到同样票数的情形,则最简单的做法是随机选择一个。算法描述
输入:训练集D={(x1,y1),⋯,(xN,yN)};
基学习算法ξ;
训练轮数T。
过程
for t = 1,2 , … , T do
通过自助采样法得到Dbs
ht=ξ(D,Dbs)
end for
输出: H(x)=argmaxy∈Y∑Tt=1I(ht(x)=y)
三、包外估计
令Dt表示ht实际使用的训练样本集,令Hoob(x) 表示对样本x的包外估计,即仅考虑哪些未使用x训练的集学习器在x上的预测Hoob(x)=argmaxy∈Y∑t=1TI(ht(x)=y)I(x∉Dt)
则Bagging泛化误差的包外估计为
ϵoob=1|D|∑(x,y)∈DI(Hoob(x)≠y)
随机森林(Random Forest ,简称RF) 是 Bagging的一个扩展变体。RF再以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。
随机森林
对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含K个属性的子集,然后再从这个子集中选择一个最优属性用于划分。K控制了随机性的引入程度
若令K=d,则基决策树的构建与传统决策树相同
若令K=1,则随机选择一个属性用于划分
一般情况下推荐值K= log2d .
随机森林中基学习器的多样性不仅来自样本扰动,还来自属性扰动,这就使得最终集成的泛化性能可通过个体学习器之间差异度的增加而进一步提升
相关文章推荐
- 机器学习 —— 决策树及其集成算法(Bagging、随机森林、Boosting)
- 机器学习 —— 决策树及其集成算法(Bagging、随机森林、Boosting)
- Bagging与随机森林算法原理小结
- 【机器学习算法模型】分类算法——随机森林
- Bagging(Bootstrap aggregating)、随机森林(random forests)、AdaBoost
- 机器学习中的算法(1)-决策树模型组合之随机森林与GBDT
- Bagging算法在SAS中的实现
- 决策树类的机器学习算法——决策树、Bagging、随机森林、Boosting、AdaBoost、GBDT、XGBoost
- 集成学习算法总结----Boosting和Bagging
- 【算法】随机森林
- paper 56 :机器学习中的算法:决策树模型组合之随机森林(Random Forest)
- 从决策树到随机森林:树型算法的原理与实现
- ID3、C4.5、CART、随机森林、bagging、boosting、GBDT、xgboost算法总结
- 集成学习算法总结----Boosting和Bagging
- 机器学习中的算法(1)-决策树模型组合之随机森林与GBDT
- 决策树系列算法总结——随机森林
- Akka 在Bagging投票算法中的简单应用
- 机器学习中的算法——决策树模型组合之随机森林与GBDT
- 经典算法总结之AdaBoost与随机森林
- R语言︱决策树族——随机森林算法