实验环境:
Matlab2016a
实验内容:
实现Bagging算法,训练多个分量分类器,比较分量分类器和最后的总分类器的分类准确率。
Bagging算法:
从大小为n的原始数据集中,分别独立随机地选取n’个样本组成自助数据集,并且将这个过程独立进行许多次,直到产生很多个独立的自助数据集。然后,每个自助数据集都被独立地用于训练一个“分量分类器”,最终分类器的判决将根据这些“分量分类器”各自的判决结果投票决定。通常,这些分量分类器的模型形式都是一样的。它们的具体模型参数不同,这是由于各自的训练集的不同而引起的。
数据集:
数据集为红酒质量分类数据,大小为12*1600,总共分为10个类,为了实验的简便,这里我处理成二分类,将5分以上的类设为1,5分以下的设为-1。数据的80%用来训练,20%用来测试,实验训练11个分量分类器,每个分量分类器的训练集都是从总训练集随机选取40%。训练完成后,用11个分量分类器对测试集进行分类,分别求出它们的准确率,然后利用它们的分类结果投票作为总的分类器结果,将分量分类器的准确率和总分类器分类准确率对比。
数据集下载:sample_ex7.mat
基分类器:
本实验采用RBF神经网络作为分量分类器,RBF网络的设计及参数初始化可以参考博文Matlab实现BP神经网络和RBF神经网络(二),RBF网络初始化参数有两种方法,一种是监督学习,一种是非监督学习。本实验采用监督学习方法,RBF函数中心、扩展常数、输出权值都采用监督学习算法进行训练,经历一个误差修正学习的过程,与BP网络的学习原理一样。训练协议同样是成批训练,当然也可以随机训练,结果都差不多。算法开始前,需要初始化各参数。隐含层神经元初始化为10,对于Wkj,可以随机在范围 −1/1–√0<Wkj<+1/