基于Bagging采样下的集成学习模型讲解

上传人:我** 文档编号:114320796 上传时间:2019-11-10 格式:DOC 页数:27 大小:141.50KB
返回 下载 相关 举报
基于Bagging采样下的集成学习模型讲解_第1页
第1页 / 共27页
基于Bagging采样下的集成学习模型讲解_第2页
第2页 / 共27页
基于Bagging采样下的集成学习模型讲解_第3页
第3页 / 共27页
基于Bagging采样下的集成学习模型讲解_第4页
第4页 / 共27页
基于Bagging采样下的集成学习模型讲解_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《基于Bagging采样下的集成学习模型讲解》由会员分享,可在线阅读,更多相关《基于Bagging采样下的集成学习模型讲解(27页珍藏版)》请在金锄头文库上搜索。

1、基于Bagging采样下的集成学习模型信息与计算科学14-1班摘要 本文采用Bagging-并行化的个体学习器,即有放回地抽取训练样本集,每个基学习器只使用了初始训练集中约63.2%的样本,剩下的约36.8%的样本可用作验证集来对泛化性能进行包外估计(out-of-bag estimate)。采用libsvm方法得到个体学习器的泛化误差及强学习器的包外泛化误差及运行时间。得到个体学习器的准确率及强学习器的包外误差,结论个体学习器良好,强学习器较差。关键词 集成学习、Bagging、泛化误差、svm支持向量机一 集成学习理论1.1 集成学习集成学习(ensemble learning)是通过构建

2、并结合多个学习器来完成学习任务的,因此有写文章中也称其为多分类器系统(multi-classifier system)或者是委员会学习(committee-based learning)。下图是集成学习的一般结构,将一组“个体学习器”(individual learner)用一些何理的策略结合起来,这些个体学习器可以是各种弱分类器,例如决策树算法,BP神经网络等。若所有的个体学习器是同种类型的,则称这样的集成是“同质”的(homogeneous),此时的学习器也可以称作是“基学习器”(base learner),相应的学习算法则为“基学习算法”(base learning algorithm)

3、.若集成中的个体学习器包含不同的学习器,则称这样的集成为“异质”的(heterogenous),此时的个体学习器则被称为是“组件学习器”(component learner)也可以被直接称为个体学习器。弱学习器:指泛化性能略优于随机猜测的学习器;例如在二分类问题中精确度略高于50%的分类器。1.2 Bagging与随机森林学习方法 本文说明采用并行化的个体学习器生成方式,和上文的Boosting串行化要求个体学习器存在强依赖关系不同的是,该生成方式是基于个体学习器应尽可能相互独立。独立的个体学习器可以得到泛化性能强的集成;当然现实中不存在绝对的独立,不过可以设法使基学习器尽可能具有较大差异。一

4、种方法就是对训练样本进行采样,产生出若干个不同的子集,再从每个数据集子集中训练出一个基学习器。不过如果采样出的每个子集完全不同,那么每个基学习器只用到了部分训练数据,可能都无法进行有效学习。因此,考虑使用相互有交叠的采样子集。假定基学习器的计算复杂度为O(m),则Bagging的复杂度大致为T(O(m)+O(s),因采样与投票/平均过程的复杂度O(s)很小,且T是一个不太大的常数(训练轮数),因此,训练一个Bagging集成与直接使用基学习算法训练一个学习器的复杂度同阶,可见Bagging是一个高效的集成学习算法。与标准的AdaBoost算法只适用于二分类任务不同,Bagging能不经修改地用

5、于多分类、回归等任务。自助采样过程还给Bagging带来一个优点:由于每个基学习器只使用了初始训练集中约63.2%的样本,剩下的约36.8%的样本可用作验证集来对泛化性能进行包外估计(out-of-bag estimate),为此需记录每个基学习器所使用的训练样本。令Dt表示ht实际使用的训练样本集,令Hoob(x)表示对样本x的包外预测,即仅考虑哪些未使用x训练的基学习器在x上的预测,有:则Bagging泛化误差的包外估值为:事实上,包外样本还有其他用途,如当基学习器是决策树时,可使用包外样本来辅助剪枝,或用于估计决策树中各结点的后验概率以辅助对零训练样本结点的处理;当基学习器是神经网络时,

6、可使用包外样本来辅助早起停止以减小过拟合风险。从偏差-方差分解的角度看,Bagging主要关注降低方差,因此它在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更为明显。二 个体学习器2.1 libsvm个体学习器LIBSVM是台湾大学林智仁(Lin Chih-Jen)教授等2001年开发设计的一个简单, 易于使用和快速有效的SVM模式识别与回归的软件包, 他不但提供了编译好的可在Windows系列系统的执行文件, 还提供了源代码, 方便改进, 修改以及在其它操作系统上应用; 该软件对SVM所涉及的参数调节相对比较少, 提供了很多的默认参数, 利用这些默认参数可以解决很多问题;2.2 执行参

7、数 2.2.1 svmtrain的用法svmtrain我们在前面已经接触过, 他主要实现对训练数据集的训练, 并可以获得SVM模型.用法: svmtrain options training_set_file model_filetraining_set_file是要进行训练的数据集; model_file是训练结束后产生的模型文件, 文件中包括支持向量样本数, 支持向量样本以及lagrange系数等必须的参数; 该参数如果不设置将采用默认的文件名, 也可以设置成自己惯用的文件名.默认情况下, 只需要给函数提供一个样本文件名就可以了, 但为了能保存结果, 还是要提供一个结果文件名, 比如: t

8、est.model, 则命令为: svmtrain test.txt test.model2.2.2 svmpredict的用法svmpredict 是根据训练获得的模型, 对数据集合进行预测.用法: svmpredict options test_file model_file output_file其中, options为操作参数, 可用的选项即表示的涵义如下所示:-b probability_estimates: 是否需要进行概率估计预测, 可选值为0 或者1, 默认值为0.model_file: 是由svmtrain 产生的模型文件;test_file: 是要进行预测的数据文件, 格式

9、也要符合libsvm格式,即使不知道label的值,也要任意填一个, svmpredict会在output_file中给出正确的label结果, 如果知道label的值, 就会输出正确率;output_file: 是svmpredict 的输出文件, 表示预测的结果值.2.2 获取训练集输出的bagging训练集及其他函数详见附录A三 测试3.1 个体学习器错误率表3.1 个体学习器错误率学习器12345678910错误率0.340.3550.3130.3190.3430.330.2880.3650.270.299时间0.1930.16170.15560.11890.17230.22810.1

10、5850.15790.28120.22453.2 强学习器泛化误差表3.2 强学习器泛化误差学习器1正确率0.44140.33450.36210.32760.34480.37590.37590.35170.31720.3621时间0.0057四 分析4.1 结论分析从表3.1中我们看到基学习器误差平均30%左右,学习结论良好。从表3.2中我们看到个体学习器误差平均68%左右,泛化结论差。附录AA.1matlab函数:集成算法主函数:function PRE,out,accuracy,time =MainUniStudy(T)%out-强学习器的最终分类标签%PRE-强学习器后的测试样本x的泛化

11、误差%T -基学习器的数量model,D,d,predict_label,accuracy = InfoDealTest(T);label=;test=;time=tic;for i=1:TData=predict_label1,i;label=label,Data(1:290,1);%Y=tabulate(x(i,:);%获得每一行数据出现频率的的统计yuan=d1,i;%取出随机后样本的数据的分类标签test=test,yuan(1:290,1);%预测标签最少的所有行%Y=tabulate(x(i,:);%获得每一行数据出现频率的的统计endout = ReturnMax(label);

12、out=out;%强学习器的最终label输出,用的是投票方法PRE=;for j=1:T check=test(:,j);count=0;for i=1:size(out,1) if(out(i,1)=check(i,1) count=count+1; endendrate=count/size(out,1);PRE=PRE,rate;endtime=time,toc;数据处理函数:function model,D,d,predict_label,acc,time = InfoDeal(T)%data-所有的数据集%rate-从数据集中取出的样本比率如0.8%T-训练集的个数load(dat

13、a.mat);row,col=size(data);%total=round(row*rate);%选出的训练集个数D=;d=;time=;for i=1:T%shunxu=randi(row-total),1);%顺序取连续样本的起点%shunxu,(shunxu+total-1)%number=row-total;%将样本重复取值增加为所有数据集个数 choose=randi(row,row,1);%随机重复取值label=data(choose,19);inst=data(choose,1:18);m,n=hist(choose,unique(choose);%对相同行的数据统计n=n;

14、rows = Find(1:row,n);rows=rows;label1=data(rows,19);inst1=data(rows,1:18);tic;modeli = svmtrain(label,inst,-s 1 -t 0);predict_labeli,accuracyi,e = svmpredict(label1,inst1,modeli);time=time,toc;Di=label,inst;di=label1,inst1;endacc=;for i=1:10 a=accuracy1,i; acc=acc,0.01*(100-a(1,1);end返回矩阵中每行出现最多的数据值:function out = ReturnMax(Data)%返回矩阵中每行出现最多的数据值for ir = 1:size(Data,1)%行数 for ic = 1:size(Data,2)%列数 temp(ic) = size(find(Data(ir,:) = Data(ir,ic),2); end data id = max(temp,2); out(ir) = Data(ir,id);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号