版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_27717921/article/details/54845955
简单地利用初始数据训练出的个体学习器多样性一般比较差,我们可以在学习过程中利用对数据样本、输入属性、输出表示、算法参数进入扰动引入随机性来增强个体学习器的多样性。
数据样本扰动
数据样本扰动对“不稳定基学习器”很有效,这样的“不稳定基学习器”主要有决策树、神经网络。训练样本稍微有些变化就会导致学习器有显著的变动。而有些基学习器对数据样本的扰动是不敏感的,比如线性学习器、支持向量机、朴素贝叶斯、K近邻学习器,这样的基学习器称为稳定基学习器,稳定基学习器对数据样本的扰动不敏感,对这类稳定基学习器一般采用的是输入属性扰动等其他机制。数据样本扰动基于的是采样法,在Bagging中使用的是自助采样法,而在AdaBoost中采样的是序列采样。
输入属性扰动
著名的随机子空间算法依赖的就是输入属性扰动,这个算法从初始属性集中抽取出若干个属性子集,再基于每个属性子集在子空间中训练个体学习器不仅能够产生多样性大的个体,还会因属性数的减少而大幅节省时间开销。下面是随机子空间算法。
输出表示扰动
基本思路是对输出表示进行操纵以增强多样性。可对训练样本的类标记稍作变动,如“翻转法”,翻转法由Breiman在2000年随机改变一些训练样本的标记;或者是对输出表示进行转化,如“输出调制法”将分类输出转化为回归输出后构建个体学习器。还可以将原任务拆解为多个可同时求解的子任务。
算法参数扰动
这里的算法参数一般要对参数进行设置,比如神经网络的隐层神经元数、初始连接权值等,通过随机设置不同的参数,往往可产生差别较大的个体学习器。比如可以将决策树使用的属性选择机制替换为其他的属性选择机制。“负相关法”显示地通过正则化项来强制个体神经网络使用不同的参数。