集成学习实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Bagging与AdaBoostM2的Matlab中的实现

在集成学习过去的研究中发现:Bagging集成学习算法和Boosting算法结合决策树基础学习器的实现的划分的效果是最好的。针对这种情况,我这次实现的问题就是在Matlab中利用决策树基础学习器实现Bagging集成学习算法和Boosting算法当前最流行的版本AdaBoostM2算法。

程序主要模块

Bagging集成学习算法的实现

下面主要介绍我的Bagging集成学习算法的实现程序,由于matlab直接集成了Bagging的决策树函数,所以Bagging实现很简单,只需对TreeBagger系统函数进行简单的参数设置就可以实现最强大的Bagging集成学习算法。我主要建了两个脚本文件实现Bagging集成学习算法,分别是classify.m文件和BaggingUseDT.m两个文件。

Classify函数

classify.m文件主要的功能是对建立好的集成学习器进行调用实现分类的目的。Classify 函数主要有三个输入参数和一个输出参数:

输入参数1:meas:代表的是训练集样本的属性矩阵,每一行代表一个样本的一组属性值。

输入参数2:species:代表的是训练集样本的真实类别列向量,species的行数由于meas 一致。

输入参数3:attList:代表的要进行分类的样本的一组属性值组成的行向量,该行向量的列数与meas矩阵的行数相同。

输出参数:class返回集成学习器判断attList向量对应的样本所属的类。BaggingUseDT函数

BaggingUseDT.m文件主要的功能是建立基于决策树的Bagging集成学习器,BaggingUseDT函数也有三个输入参数和一个输出参数。

输入参数1:X:代表的是训练集样本的属性矩阵,每一行代表一个样本的一组属性值。

输入参数2:Y:代表的是训练集样本的真实类别列向量,species的行数由于meas一致。

输入参数3:ens:返回利用训练集样本属性矩X和训练集样本的真实类别列向量Y训练得到的集成学习器。

AdaBoostM2集成学习算法的实现

下面主要介绍我的AdaBoostM2集成学习算法的实现程序,由于matlab2012a对集成学习算法架构进行了集成,基本可以对任何的集成学习算法进行实现,只需对系统函数进行简单的参数设置就可以实现。我主要建了一个脚本文件实现AdaBoostM2集成学习算法,AdaBoostM2UseDT.m文件。AdaBoostM2UseDT函数的的输入输出函数与BaggingUseDT函数一致,这里不做赘述。

训练数据集

训练两个集成学习分类器的数据采用的是Matlab提供的用于机器学习典型的分类测试数据集:Iris鲜花数据集。该数据集含有150个样本,每个样本含有四个属性,数据集有各个样本的详细取值与鲜花所属的分类。

实验数据

实验数据采用的是Iris鲜花数据集与测试样例是数据集中样本四个属性的均值:

实验主要在matlab的命令窗口下进行:

实验代码如下:

load fisheriris;%读取Iris鲜花数据集

att=mean(meas);%将样本的属性的均值赋值到att向量中

flower=classify(meas,species,att);%使用classify函数利用输入参数meas,species来训练集成学习器,并利用生成集成学习器对att进行分类

实验结果:

flower =

'versicolor'

相关文档
最新文档