美文网首页程序员今日看点
分类(5):组合分类器-随机森林

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

作者: longgb246 | 来源:发表于2016-10-25 09:54 被阅读0次

一、组合方法

(1)组合分类器原理:

考虑25个二元分类器,每一个分类误差a=0.35。组合分类器通过多数投票,如果基分类器是独立的,则仅当超过一半的基分类器都预测错误时,组合才会错误,则:
![](http://www.forkosh.com/mathtex.cgi? e_{ensemble}=\sum_{i=1}{25}C_{25}{i}a{i}(1-a){25-i}=0.06)

可以看出,其远低于0.35。

(2)组合分类器与基分类器比较:
5_26.png

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

1、基分类器应该是<strong>独立</strong>的。
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为包含所有样本计算的准确率):
![](http://www.forkosh.com/mathtex.cgi? acc_{boot}=\frac{1}{b}\sum_{i=1}^{b}(0.632\times\varepsilon {i}+0.368\times acc{s}))

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

(4)提升(Boosting)

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

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

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

AdaBoost

在该算法中,基分类器 Ci 的重要性依赖于它的错误率,错误率的定义:
![](http://www.forkosh.com/mathtex.cgi? error_{i}=\frac{1}{N}\left[\sum_{j=1}^{N}w_{j}I(C_{i}(x_{j}\neq y_{j}))\right])
对于I,为指示变量,错误个数的加权取平均,基分类器的重要度 \alpha 为:
![](http://www.forkosh.com/mathtex.cgi? \alpha_{i}=\frac{1}{2}ln\left(\frac{1-error_{i}}{error_{i}}\right))
作出重要度 \alpha 关于 error 的图:

5_30.png

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


5_31.png

Zj 是一个正规因子,用于确保:
![](http://www.forkosh.com/mathtex.cgi? \sum_{i}w_{i}^{j+1}=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快得多。

随机森林的一些参数选择

通常选取特征数目为:
![](http://www.forkosh.com/mathtex.cgi? F=log_{2}^{d}+1)
d 为输入特征数。

相关文章

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

    一、组合方法 (1)组合分类器原理: 考虑25个二元分类器,每一个分类误差a=0.35。组合分类器通过多数投票,如...

  • 数据分析:信用卡违约率分析,利用GridSearchCV进行参数

    分类器: 随机森林分类器(RandomForest):包含多个决策树的分类器,每一个子分类器都是一颗CART分类器...

  • 数据挖掘-随机森林

    随机森林(RandomForest)是一类专门为决策树分类器设计的组合方法,关于组合方法可以参考https://w...

  • 各种机器学习算法的应用场景

    主要针对分类器(Classifier)。 没有最好的分类器,只有最合适的分类器。 随机森林平均来说最强,但也只在9...

  • 第八章 数据决策分析算法——基于随机森林的决策分类

    8.4 基于随机森林的决策分类 随机森林是一种一个包含多个决策树的分类器,是用随机的方法建立一个森林,森林里面由很...

  • AdaBoost算法

    基于数据集多重抽样的分类器 将不同的分类器组合起来,这种组合结果成为元算法 bagging:基于数据随机重抽样的分...

  • 随机森林算法梳理

    随机森林分类器是一种基于装袋(bagging)全称Bootstrap Aggregation。的集成算法 随机森林...

  • 随机森林分类器

    随机森林,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森...

  • 15. 随机森林

    Bootstraping: 有放回的采样 Bagging: 无放回采样n个样本一起建立分类器 随机森林 随机森林:...

  • 随机森林

    随机森林 :集成学习算法 集成学习:将多个模型进行组合来解决单一的预测问题。它的原理是生成多个分类器模型,各自独立...

网友评论

    本文标题:分类(5):组合分类器-随机森林

    本文链接:https://www.haomeiwen.com/subject/ybhcuttx.html