主要内容

Lpboost和全腾料为小型合奏

这个例子展示了如何获得LPBoost截止船算法。这些算法共享两个有益的特征:

  • 它们是自我终端的,这意味着您不必弄清楚有多少成员包括在内。

  • 他们制作的乐团有一些非常小的重量,使您可以安全地移除乐团成员。

加载数据

加载电离层数据集。

负载电离层

创建分类集合

创建集合来对电离层数据使用LPBoost截止船,为了比较,AdaBoostM1算法。一个合奏团要有多少成员是很难知道的。为LPBoost截止船,试着用500.为了比较,也可以使用500AdaBoostM1

用于增强方法的默认弱学习器是带有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');

图中包含一个坐标轴。轴线包含3个线型对象。这些对象代表AdaBoost, TotalBoost, LPBoost。

这三种算法都能在一段时间后对训练数据进行完美的预测。

检查所有三个合奏中的成员数量。

[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');

图中包含一个坐标轴。轴线包含3个线型对象。这些对象代表AdaBoost, TotalBoost, LPBoost。

结果表明,每个升压算法达到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('全潮重量'

图包含2个轴。具有标题LPBoost权重的轴1包含类型线的对象。具有标题的轴2占总腾料重量的轴表包含类型的对象。

两个都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.

紧凑型合奏的尺寸与每个成员数量成比例。

另请参阅

||||||

相关话题