机器学习笔记02---集成学习---多样性增强

    在集成学习中须有效地生成多样性大的个体学习器。与简单地直接用初始数据训练出个体学习器相比,如何增强多样性呢?一般思路是在学习过程中引入随机性,常见的做法主要是对数据样本、输入属性、输出表示、算法参数进行扰动。

    ①数据样本扰动

    给定初始数据集,可以从中产生出不同的数据子集,再利用不同的数据子集训练出不同的个体学习器。数据样本扰动通常是基于采样法,例如在Bagging中使用自主采样,在AdaBoost中使用序列采样。此类做法简单高效,使用最广。对很多常见的基学习器,例如决策树、神经网络等等,训练样本稍加变化就会导致学习器有显著变动,数据样本扰动法对这样的“不稳定基学习器”很有效;然而,有一些基学习器对数据样本的扰动不敏感,例如线性学习器、支持向量机、朴素贝叶斯、k近邻学习器等等,这样的基学习器成为稳定基学习器,对此类基学习器进行集成往往需使用输入属性扰动等其他机制。

    ②输入属性扰动

    训练样本通常由一组属性描述,不同的“子空间”(即属性子集)提供了观察数据的不同视角。显然,从不同子空间训练出来的个体学习器必然有所不同。著名的随即子空间算法就依赖于输入属性扰动,该算法从初始属性集中抽取出若干个属性子集,再基于每个属性子集训练一个基学习器,算法描述如下所示。

输入: 训练集D = {(x1,y1),(x2,y2),...,(xm,ym)};
       基学习算法μ;
       基学习器数T;
       子空间属性数d'.  # d'小于d
过程:
1.for t = 1,2,...,T:
      Ft = RS(D,d')    # Ft包含d'个随机选取的属性
      Dt = Map_Ft(D)   # Dt仅保留Ft中的属性
      ht = μ(Dt)
  end
2.输出综合各个基学习器的学习器

③输出表示扰动

    此类做法的基本思想是对输出表示进行操纵以增强多样性。可对训练样本的类标记稍作变动,如"翻转法"随即改变一些训练样本的标记;也可对输出表示进行转化,如“输出调制法”将分类输出转化为回归输出后构建个体学习器;还可将原任务拆解为多个可同时求解的子任务。

④算法参数扰动

    基学习算法一般都有参数需要设置,例如神经网络的隐层神经元数、初始连接权值等,通过随即设置不同的参数,往往可产生差别较大的个体学习器。例如“负相关法”显式地通过正则化项来强制个体神经网络使用不同的参数。对参数较少的算法,可通过将其学习过程中某些环节用其他类似方式代替,从而达到扰动的目的,例如可以将决策树使用的属性选择机制替换成其他的属性选择机制。值得指出的是,使用单一学习器时通常需要使用交叉验证等方法来确定参数值,这事实上已使用了不同参数训练出多个学习器,只不过最终仅选择其中一个学习器进行使用,而集成学习则相当于把这些学习器都利用起来;由此也可以看出,集成学习技术的实际计算开销并不比使用单一学习器大很多。

参考周志华《机器学习》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值