这个例子展示了如何获得LPBoost
和截止船
算法。这些算法共享两个有益的特征:
它们是自我终端的,这意味着您不必弄清楚有多少成员包括在内。
他们制作的乐团有一些非常小的重量,使您可以安全地移除乐团成员。
加载电离层
数据集。
负载电离层
创建集合来对电离层
数据使用LPBoost
,截止船
,为了比较,AdaBoostM1
算法。一个合奏团要有多少成员是很难知道的。为LPBoost
和截止船
,试着用500
.为了比较,也可以使用500
为AdaBoostM1
.
用于增强方法的默认弱学习器是带有MaxNumSplits
属性设置为10
.这些树往往比树桩更适合1
最大拆分),可能会超过更多。因此,为防止过度装备,使用树桩作为合奏的弱学习者。
RNG('默认')重复性的%T = 500;treeStump = templateTree ('maxnumsplits'1);adaStump = fitcensemble (X, Y,“方法”,“AdaBoostM1”,“NumLearningCycles”,t,“学习者”, treeStump);totalStump = fitcensemble (X, Y,“方法”,“TotalBoost”,“NumLearningCycles”,t,“学习者”, treeStump);lpstump = fitcensemble(x,y,“方法”,“LPBoost”,“NumLearningCycles”,t,“学习者”, treeStump);图绘制(resubLoss (adaStump“模式”,“累积”));持有在情节(resubLoss (totalStump,“模式”,“累积”),“r”);情节(resubLoss (lpStump,“模式”,“累积”),‘g’);持有从Xlabel(“树桩的数量”);ylabel (“训练误差”);传奇(“演”,“TotalBoost”,“LPBoost”,'地点','ne');
这三种算法都能在一段时间后对训练数据进行完美的预测。
检查所有三个合奏中的成员数量。
[adaStump。NTrained totalStump。NTrained lpStump。NTrained]
ans =1×3500 52 79
AdaBoostM1
训练有素的所有500
会员。另外两种算法尽早停止训练。
交叉验证集成,以更好地确定集成精度。
cvlp = crossval (lpStump,“KFold”5);cvtotal = crossval(totalstump,“KFold”5);cvada = crossval (adaStump,“KFold”5);图绘制(kfoldLoss (cvada“模式”,“累积”));持有在情节(kfoldLoss (cvtotal,“模式”,“累积”),“r”);情节(kfoldLoss (cvlp,“模式”,“累积”),‘g’);持有从Xlabel(的整体尺寸);ylabel (“旨在错误”);传奇(“演”,“TotalBoost”,“LPBoost”,'地点','ne');
结果表明,每个升压算法达到10%或更低的损失,50个集合构件。
要减小集成的大小,请压缩它们,然后使用雷诺维尔人
.问题是,你应该删除多少个学习者?交叉验证的损失曲线给你一个测量。另一方面,检查学习者的权重LPBoost
和截止船
压实之后。
每=紧凑(adaStump);clp =紧凑(lpStump);ctotal =紧凑(totalStump);figure subplot(2,1,1) plot(clp.TrainedWeights) title(“LPBoost重量”) subplot(2,1,2) plot(ctotal.TrainedWeights) title('全潮重量')
两个都LPBoost
和截止船
显示精确成员权重变得可忽略不计的清晰点。
删除不重要的团队成员。
每= removeLearners(每150:cada.NTrained);clp = removeLearners (clp 60: clp.NTrained);ctotal = removeLearners (ctotal 40: ctotal.NTrained);
检查去除这些学习者不会影响训练数据的集成精度。
(损失(每,X, Y)损失(clp, X, Y)损失(ctotal, X, Y)]
ans =1×30 0 0
检查生成的紧凑整体大小。
S(1)= WHOS(“每”);(2) =谁(中电控股的);s(3)= Whos('ctotal');s.bytes
ans = 590844
ans = 236030
ANS = 157190.
紧凑型合奏的尺寸与每个成员数量成比例。
袖珍的
|crossval
|fitcensemble
|kfoldLoss
|损失
|雷诺维尔人
|resubLoss