基于Bagging采样下的集成学习模型汇总Word格式.docx
《基于Bagging采样下的集成学习模型汇总Word格式.docx》由会员分享,可在线阅读,更多相关《基于Bagging采样下的集成学习模型汇总Word格式.docx(43页珍藏版)》请在冰豆网上搜索。
当基学习器是神经网络时,可使用包外样本来辅助早起停止以减小过拟合风险。
从偏差-方差分解的角度看,Bagging主要关注降低方差,因此它在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更为明显。
二个体学习器
2.1libsvm个体学习器
LIBSVM是台湾大学林智仁(LinChih-Jen)教授等2001年开发设计的一个简单,易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进,修改以及在其它操作系统上应用;
该软件对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数可以解决很多问题;
2.2执行参数
2.2.1svmtrain的用法
svmtrain我们在前面已经接触过,他主要实现对训练数据集的训练,并可以获得SVM模型.
用法:
svmtrain[options]training_set_file[model_file]
training_set_file是要进行训练的数据集;
model_file是训练结束后产生的模型文件,文件中包括支持向量样本数,支持向量样本以及lagrange系数等必须的参数;
该参数如果不设置将采用默认的文件名,也可以设置成自己惯用的文件名.
默认情况下,只需要给函数提供一个样本文件名就可以了,但为了能保存结果,还是要提供一个结果文件名,比如:
test.model,则命令为:
svmtraintest.txttest.model
2.2.2svmpredict
的用法
svmpredict是根据训练获得的模型,对数据集合进行预测.
svmpredict[options]test_filemodel_fileoutput_file
其中,options为操作参数,可用的选项即表示的涵义如下所示:
-bprobability_estimates:
是否需要进行概率估计预测,可选值为0或者1,默认值为0.
model_file:
是由svmtrain产生的模型文件;
test_file:
是要进行预测的数据文件,格式也要符合libsvm格式,
即使不知道label的值,
也要任意填一个,svmpredict会在output_file中给出正确的label结果,如果知道label的值,就会输出正确率;
output_file:
是svmpredict的输出文件,表示预测的结果值.
2.2获取训练集
输出的bagging训练集及其他函数详见附录A
…
三测试
3.1个体学习器错误率
表3.1个体学习器错误率
学习器
1
2
3
4
5
6
7
8
9
10
错误率
0.34
0.355
0.313
0.319
0.343
0.33
0.288
0.365
0.27
0.299
时间
0.193
0.1617
0.1556
0.1189
0.1723
0.2281
0.1585
0.1579
0.2812
0.2245
3.2强学习器泛化误差
表3.2强学习器泛化误差
正确率
0.4414
0.3345
0.3621
0.3276
0.3448
0.3759
0.3517
0.3172
0.0057
四分析
4.1结论分析
从表3.1中我们看到基学习器误差平均30%左右,学习结论良好。
从表3.2中我们看到个体学习器误差平均68%左右,泛化结论差。
附录A
A.1
matlab函数:
集成算法主函数:
function[PRE,out,accuracy,time]=MainUniStudy(T)
%out--强学习器的最终分类标签
%PRE--强学习器后的测试样本x的泛化误差
%T--基学习器的数量
[model,D,d,predict_label,accuracy]=InfoDealTest(T);
label=[];
test=[];
time=[]
tic;
fori=1:
T
Data=predict_label{1,i};
label=[label,Data(1:
290,1)];
%Y=[tabulate(x(i,:
))];
%获得每一行数据出现频率的的统计
yuan=d{1,i};
%取出随机后样本的数据的分类标签
test=[test,yuan(1:
%预测标签最少的所有行
end
[out]=ReturnMax(label);
out=out'
;
%强学习器的最终label输出,,用的是投票方法
PRE=[];
forj=1:
check=test(:
j);
count=0;
size(out,1)
if(out(i,1)==check(i,1))
count=count+1;
end
rate=count/size(out,1);
PRE=[PRE,rate];
time=[time,toc];
数据处理函数:
function[model,D,d,predict_label,acc,time]=InfoDeal(T)
%data--所有的数据集[]
%rate--从数据集中取出的样本比率如0.8
%T--训练集的个数
load('
data.mat'
);
[row,col]=size(data);
%total=round(row*rate);
%选出的训练集个数
D=[];
d=[];
time=[];
%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'
[rows]=Find(1:
row,n);
rows=rows'
label1=data(rows,19);
inst1=data(rows,1:
model{i}=svmtrain(label,inst,'
-s1-t0'
[predict_label{i},accuracy{i},e]=svmpredict(label1,inst1,model{i});
D{i}=[label,inst];
d{i}=[label1,inst1];
acc=[];
a=accuracy{1,i};
acc=[acc,0.01*(100-a(1,1))];
返回矩阵中每行出现最多的数据值:
function[out]=ReturnMax(Data)%返回矩阵中每行出现最多的数据值
forir=1:
size(Data,1)%行数
foric=1:
size(Data,2)%列数
temp(ic)=size(find(Data(ir,:
)==Data(ir,ic)),2);
[dataid]=max(temp,[],2);
out(ir)=Data(ir,id);
将两个一维矩中不同的数据输出(已排序的矩阵)
function[C]=Find(A,B)%将两个一维矩中不同的数据输出(已排序的矩阵)
la=length(A);
lb=length(B);
s=1;
la
isequal=0;
forj=1:
lb
ifA(i)==B(j)
isequal=1;
break;
ifisequal==0
C(s)=A(i);
s=s+1;
A.2随机数据集采样
基学习器1
49746942096710195342214722457319470014188197
3985184207727184352116119952019872911196199
4803864130598134511812615225913576123179188
4105521072076011218312416722170119766020191203
4893677172628157421912517436712663522198205
3834170155657144461914116830914771412188195
386426412254614846191431703191718713179182
4924682170588165402014918140916461811200208
4104551052166811205322316922162321671918189196
21055410621568102083224166217640218691423189199
4933466140567130511812015125111462529201207
498541041865910213322417222366521773126186195
210751103182561121331241622266732177224188198
2105541002206910221302517023271820273013187199
386456612657814846191451703211868607179182
210654101222671222230251732287212007034187201
41015310320363919534221622105712106855191198
28837571326261355018125151265144831616180184
394397518472815542191331753651457045192200
4863889176599169392013219042814867733193202
499508820464101853522159209517193661211194201
4109511001975910192342216121055319564143196202
3993874184666164392013119341413771222200202
190446915264713549181451652721627532187191
398528620769519233221612125702217546194195
189407715965914446191411683141437005190200
4793972127539142481913516529514477721181189
4873885177618164402012918640213063125198205
386457315263614944191451703351767161189196
4954296197659178372114119947414967129193200
49952104177551021032241662196572157332187194
410752103186571121431241622176761896665189198
4101511052126810209322416222265322473523186195
49848101195611120731231522276501937157189196
31055180207716195332215921457918875620194194
3874260116516150461914116932417185214178182
4893669142577135501812615426612866336193203
310253101238724238282616326784424285722184184
4106491071945711214312416122467017267039192206
4974781183648168392015019342618270112192198
18740811626810146461913916731715770013189199
497377616960816141201311893911367200188192
188426415162813051181421502531616332203210
3954773195707167382015218443018569919200206
49858101208651222630251822257482167161185196
1864066139597122541713914522514363711202208
393458620169718435221452035231837204194197
310757106179518257262817227595423283220181184
1864478164689142461814716830517170111190201
2107551032136811219302517222170921670107187197
2110531042236610211322416422365921067516190203
2904372172598154421914417436015861159203209
18942661255371315118144162254162731017188191
4103541072186412222302517422172819967018189200
283375413161413550181271522711418536180183
3983870186686164392013618941312971317200203
4102541011905810222302517122472820371136189198
194356614762913150181271592581156687196201
4108551052306811218302417122870921069144190197
1924062144598127521713914924115062131204210
1843770150617137491814015627812164023196205
19745881736710157432015717336515767812192200
4923874178629161412013518138813263729197206
41045510522370102233025177237737218751411188196
193417915963814446191501653091346749195203
2101511122015911214322416222366719465036190206
397457218771516140201441783991867077196203
292378018067815443191291803531446969190195
4975596170541021631241732196852187504184193
38944701586461414718143