分类(5):组合分类器-随机森林

原版:http://www.jianshu.com/p/379018d420c1

一、组合方法
(1)组合分类器原理:

考虑25个二元分类器,每一个分类误差a=0.35。组合分类器通过多数投票,如果基分类器是独立的,则仅当超过一半的基分类器都预测错误时,组合才会错误,则:

eensemble=i=125Ci25ai(1a)25i=0.06

可以看出,其远低于0.35。

(2)组合分类器与基分类器比较:

5_26.png

上图,虚线表示所有基分类器都一样,实线表示所有基分类器都独立。可以看出,当基分类器的错误率大于0.5(仅这个例子吗?)时候,组合分类器的性能不比基分类器的性能好。
组合分类器的性能优于基分类器的条件:

1、基分类器应该是独立的。
2、基分类器应当好于随机猜想。

(3)袋装(bagging)-自助法(bootstrap aggregating)
袋装-自助法(bootstrap):

训练集是对于原数据集的有放回抽样,如果原始数据集N,可以证明,大小为N的自助样本大约包含原数据63.2%的记录。当N充分大的时候,1-(1-1/N)^(N) 概率逼近 1-e^(-1)=0.632。抽样 b 次,产生 b 个bootstrap样本,则,总准确率为(accs为包含所有样本计算的准确率):

accboot=1bi=1b(0.632×εi+0.368×accs)

袋装算法:
设 k 为自助样本的数目
for i = 1 to k do
  生成一个大小为 N 的自助样本 Dt
  在自助样本 Dt 上训练一个基分类器 Ci
C*=argmax(Ci...)
袋装举例理解:

下面的这个数据集,使用决策树,熵值来分裂,可以得到分裂点为:x<=0.35 或 x<=0.75,但是无论是哪个分类点,准确率都最多为70%。
5_27.png

使用袋装抽样:
5_28.png

使用简单的求和,取符号,可以发现,分类正确率为100%:
5_29.png

袋装评价:

1、通过降低基分类器的方差改善了泛化误差
2、袋装的性能依赖于基分类器的稳定性。如果基分类器是不稳定的,袋装有助于降低训练数据的随机波动导致的误差;如果基分类器是稳定的,则组合分类器的误差主要由基分类器的偏倚引起,则这种情况下,袋装可能会降低分类器的性能。
3、袋装中的数据是均概率被选中,所以对特定数据不敏感,对于噪音,不太受过拟合影响。

(4)提升(Boosting)

提升是一个迭代过程,自适应的改变样本的分布,使得基分类器聚焦在那些很难分类的样本上,提升每次给一个训练样本一个权值,在每一轮结束的时候自动地调整权值。

现在又很多提升算法,算法的差别在于:

(1)每轮提升结束时如何更新训练样本权值
(2)如何组合每个分类器的预测

AdaBoost

在该算法中,基分类器 Ci 的重要性依赖于它的错误率,错误率的定义:

errori=1Nj=1NwjI(Ci(xjyj))

对于I,为指示变量,错误个数的加权取平均,基分类器的重要度 α 为:
αi=12ln(1errorierrori)

作出重要度 α 关于 error 的图:
5_30.png

发现错误率接近 0 时候,重要度很大,接近 1 时候,重要度负向很大。
Adaboost 的权值更新有以下给出,第 j 次迭代:
5_31.png

Zj 是一个正规因子,用于确保:

iwj+1i=1

AdaBoost算法:

5_32.png

AdaBoost例子:

5_33.png

5_34.png

1、该组合分类器的训练误差呈指数递减,从而算法很快就会收敛。
2、但是它倾向于那些被误分类的样本,所以提升技术很容易受到过拟合的影响。

二、随机森林(Random Forest)
随机森林的过程图:

5_35.png

已经从理论上证明了,当树的数目足够大的时候,随机森林的泛化误差的上界收敛于下面表达式:
5_36.png

随机森林性质

每棵决策树都使用一个从固定概率分布产生的随机向量。可以使用多种方法将随机向量合并到树中。

不同的随机森立方法:

1、Forest-RI。随机选择 F 个输入特征来对决策树的结点进行分裂,树之后完全增长不进行任何修剪,这有助于减少树的偏倚。之后用多数投票表决来组合预测。为了增加随机性,可以使用自助样本。
2、Forest-RC。d 的数目太小的情况,需要增大特征空间,创建输入特征的线性组合。输入特征用区间[-1,1]的均匀分布产生的系数进行线性组合。
3、对于每个结点,从 F 个最佳划分中随机选择一个,该方法也是比上面两个更花费时间。
4、随机森林的分裂准确率与Adaboost相媲美,但它对噪声更加鲁棒,运行速度也比Adaboost快得多。

随机森林的一些参数选择

通常选取特征数目为:

F=logd2+1

d 为输入特征数。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值