《数据挖掘(完整版)》笔记——组合方法

1. 组合方法的基本原理

考虑如下的例子
在这里插入图片描述
再看下面一张图
在这里插入图片描述
对角线表示所有基分类器都是等同的情况,则实线表示所有基分类器独立时的情况

通过这两个例子说明,组合分类器的性能优于单个分类器必须满足两个必要的条件:

  1. 基分类器之间应该相互独立
  2. 基分类器应当好于随机猜测分类器

实践上,很难保证基分类器之间完全独立,尽管如此,我们看到在基分类器轻微相关的情况下,组合方法可以提高分类的准确率

2. 构建组合分类器的方法

(1)通过处理训练数据集
这种共方法根据某种抽样分布,通过对原始数据进行再抽样来得到多个训练集。抽样分布决定一个样本分类器,bagging和boosting是两种处理训练数据集的组合方法
(2)通过处理输入特征
通过选择输入特诊的子集来形成每个训练集,子集可以是随机选择,也可以根据领域专家的建议选择。一些研究表明,对那些含有大量冗余特征的数据集,这种方法的性能非常好。随机森林就是一种处理输入特征的组合方法
(3)通过处理类标号
这种方式适用于类数足够多的情况。通过将类标号随机划分成两个不相交的子集 A 0 A_0 A0 A 1 A_1 A1,把训练数据变换为二分类问题。类标号属于子集 A 0 A_0 A0的训练样本指派到类0,而那些类标号属于子集 A 1 A_1 A1的训练样本被指派到类1. 然后,使用重新标记过的数据来训练一个基分类器。重复重新标记类和构建模型步骤多次,就得到一组基分类器。当遇到一个检验样本时,使用每个基分类器 C i C_i Ci预测它的类标号。如果检验样本被预测为类0,则属于 A 0 A_0 A0的类都得到一票,同理被预测为类1. 最后统计选票,将检验样本指派到得票最高的类。错误-纠正输出编码方法就是该方法的一个例子
(4)通过处理学习算法
在同一个训练数据集上多次执行算法可能得到不同的模型。例如,通过改变人工神经网络的拓扑结构或各个神经元之间联系的初始权值;在树生成过程中注入随机性,可以得到决策树的组合分类器

在这里插入图片描述

3. 偏倚-方差分解

偏倚-方差分解时分析预测模型的预测误差的形式化方法

我们看下面的这个例子:
在这里插入图片描述
我们可以将一个分类器的期望误差分解为公式(5-67)中的三项之和,其中期望误差是分类器误分一个给定样本的概率。

一般来说,分类器关于它的决策边界性质所做的假定越强,分类器的偏倚就越大。如下图中,T2具有更大的偏倚,因为它对决策边界的假定更强(反映在树的大小上)
在这里插入图片描述
期望误差中的偏倚和方差取决于使用的分类器的类型,如下图所示
在这里插入图片描述

4. 装袋(bagging)

装袋是一种根据均匀概率分布从数据集中重复抽样的技术么个自助样本集都和原数据集一样大。由于抽样过程是有放回的,因此一些样本可能在同一个训练集中出现多次,而其他一些却可能被忽略。一般来说自助样本 D i D_i Di大约包含约0.63的原训练数据在这里插入图片描述
装袋通过降低基分类器方差改善了泛化误差,装袋的性能依赖于基分类器的的稳定性如果基分类器是不稳定的,装袋有助于减低训练数据的随机波动导致的误差;如果基分类器是稳定的,即对训练集中的微小变化是鲁棒的,则组合分尅器的误差主要是由基分类器的偏倚所引起。在这种情况下,装袋可能不会对基分类器的性能有显著改善,装袋甚至可能会降低分类器的性能,因为每个训练集的有效容量比原始数据集大约小0.37

最后由于每一个样本被选中的概率都相同,因此装袋并不侧重与训练数据集中的任何特定实例。因此,用于噪声数据,装袋不会过分拟合

5. 提升(boosting)

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

训练样本的权值可以用于以下方面:(1)可以用作抽样分布,从原始数据集中提取出自主样本集;(2)基分类器可以使用权值学习有利于高权值样本的模型

开始时,所有样本都赋予相同的权值 1 / N 1/N 1/N,从而使得他们被选作训练的可能性都一样。根据训练样本的抽样分布来抽取样本,得到性的样本集。然后, 由该训练集归纳一个分类器,并用它对原数据集中的所有样本进行分类。每一轮提升结束时更新训练样本的权值。增加被错误分类的样本的权值,而减小被正确分类的的样本的权值

AdaBoost

{ ( x j , y j ) ∣ j = 1 , 2 , ⋯   , N } \left \{ (\mathbf x_j, y_j)|j=1, 2, \cdots, N \right \} {(xj,yj)j=1,2,,N}表示包含 N N N个训练样本的集合。在AdaBoost算法中,基分类器 C i C_i Ci的重要性依赖于它的错误率 ε i \varepsilon_i εi,其定义为:

ε i = 1 N [ ∑ j = 1 N w j I ( C i ( x j ) ≠ y j ) ] \varepsilon_i=\frac{1}{N}[\sum_{j=1}^N w_jI(C_i(\mathbf x_j) \neq y_j)] εi=N1[j=1NwjI(Ci(xj)=yj)]

基分类器 C i C_i Ci的重要性由如下参数给出:

α i = 1 2 l n ( 1 − ε i ε i ) \alpha_i = \frac{1}{2}ln(\frac{1-\varepsilon_i}{\varepsilon_i}) αi=21ln(εi1εi)

在这里插入图片描述
参数 α i \alpha_i αi也被用来更新训练样本的权值。假定 w i ( j ) w_i^{(j)} wi(j)表示在第 j 轮提升迭代中赋给样本 ( x i , y i ) (\mathbf x_i, y_i) (xi,yi)的权值。AdaBoost 的权值更新机制由下式给出:

w i ( j + 1 ) = w i ( j ) Z j × { e − α j i f   C j ( x i ) = y i e α j i f   C j ( x i ) ≠ y i w_i^{(j+1)} = \frac{w_i^{(j)}}{Z_j}\times \left\{\begin{matrix} e^{-\alpha_j} & if \ C_j(\mathbf x_i)=y_i & \\ e^{\alpha_j} & if \ C_j(\mathbf x_i)\neq y_i & \end{matrix}\right. wi(j+1)=Zjwi(j)×{eαjeαjif Cj(xi)=yiif Cj(xi)=yi

Z j Z_j Zj是一个正规因子,用来确保 ∑ i w i ( j + 1 ) = 1 \sum_i w_i^{(j+1)}=1 iwi(j+1)=1,该公式给出的权值更新公式增加哪些被错误分类样本的权值,并减少哪些已经被正确分类的样本的权值,并减少哪些已经被正确分类的样本的权值

AdaBoost 算法将每一个分类器 C j C_j Cj的预测值根据 α j \alpha_j αj进行加权,而不是使用多数表决的方案。这种机制有助于AdaBoost 惩罚那些准确率很差的模型,如那些在较早的提升轮产生的模型。另外,如果任何中间轮产生高于 50% 的误差,则权值将被恢复为开始的一致值 w i = 1 / N w_i=1/N wi=1/N,并重新进行抽样
在这里插入图片描述
对提升的一个重要分析结果显示,组合分类器的训练误差受下式的限制:

e e n s e m b l e ⩽ ∏ i [ ε i ( 1 − ε i ) ] e_{ensemble} \leqslant \prod _i[\sqrt{\varepsilon_i(1-\varepsilon_i)}] eensemblei[εi(1εi) ]

ε i \varepsilon_i εi是基分类器 i 的错误率。如果基分类器的错误率低于50%,则 ε i = 0.5 − γ i \varepsilon_i=0.5-\gamma_i εi=0.5γi,其中 γ i \gamma_i γi度量了分类器比随机猜测强多少。则组合分类器的训练误差的边界变为:

e e n s e m b l e ⩽ ∏ i 1 − 4 γ i 2 ⩽ e x p ( − 2 ∑ i γ i 2 ) e_{ensemble} \leqslant \prod _i\sqrt{1-4\gamma_i^2}\leqslant exp(-2\sum_i \gamma_i^2) eensemblei14γi2 exp(2iγi2)

如果对所有的 i 都有 γ i < γ ∗ \gamma_i < \gamma^* γi<γ,则组合分类的训练误差呈指数递减,从而导致算法快速收敛。尽管如此,由于它倾向于那些被错误分类的样本,提升技术很容易过分拟合

6. 随机森林

随机森林是一类专门为决策树分类器设计的组合方法。它组合多棵决策树做出的预测,其中每棵树都是基于随机向量的一个独立集合的值产生的。与 AdaBoost 使用的自适应方法不同,AdaBoost中概率分布是变化的,以关注难分类的样本,而随机森林则采用一个固定的概率分布来产生随机向量

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

泛 化 误 差 ⩽ ρ ˉ ( 1 − s 2 ) s 2 泛化误差 \leqslant \frac{\bar \rho (1-s ^ 2)}{s^2} s2ρˉ(1s2)

ρ ˉ \bar \rho ρˉ是树之间的平均相关系数, s s s是度量属性分类器的强度的量。一组分类器的强度是指分类器的平均性能,而性能以分类器的余量 M \mathbf M M用概率算法度量:

M ( X , Y ) = P ( Y ^ θ = Y ) − m a x Z ≠ Y P ( Y ^ θ = Z ) \mathbf M(\mathbf X, Y) = P(\hat Y_{\theta}=Y)-\underset{Z \neq Y}{max}P(\hat Y_{\theta}=Z) M(X,Y)=P(Y^θ=Y)Z=YmaxP(Y^θ=Z)

其中 Y ^ θ \hat Y_{\theta} Y^θ是根据某随机向量 θ \theta θ构建的分类器对 X \mathbf X X做出的预测类。余量越大,分类器正确预测给定的样本 X \mathbf X X的可能性就越大

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

第一种方法是随机选择 F F F个输入特征来对决策树的节点进行分裂。这样,分裂节点的决策是根据这 F F F选定的特征,而不是考察所有可用的特征来决定。然后,让树完全增长而不进行任何修建,这可能有助于减少结果数的偏倚树构建完毕之后,就可以使用多数表决的方法来组合预测。这种方法称为 Forest-RI,为了增加随机性,可以使用装袋来为 Forest-RI产生自助样本。随机森林的强度和相关性都取决于 F F F的大小,如果其足够小,树的相关性趋向于减弱;另一方面,树分类器的强度趋向于随着输入特征数 F F F的增加而提高。作为折中,通常取 F = l o g 2 d + 1 F=log_2d+1 F=log2d+1,其中 d d d是输入特征数

如果原始特征 d d d的数目太小,则很难选择一个独立的随机特征集合来建立决策树一种加大特征空间办法是创建输入特征的线性组合。具体地说,在每一个节点,新特征通过随机选择 L L L个输入特征来构建。这些输入特征用区间 [-1, 1] 上的均匀分布产生的系数进行线性组合。在每个结点,产生 F F F个这种随机组合的新特征,并且从中选择最好的来分裂结点。这种方法称为 Forest-RC

生成随机树的第三种方法是:在决策树的每一个结点,从 F F F个最佳划分中随机选择一个。除非 F F F足够大,否则这种方法可能产生比前两种方法相关性更强的树

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值