这个例子展示了如何获得LPBoost
和TotalBoost
算法。这些算法有两个有益的特点:
它们是自动终止的,这意味着你不需要计算要包含多少成员。
他们制作的乐团有一些非常小的重量,使您可以安全地移除乐团成员。
加载电离层
数据集。
负载电离层
创建集合来对电离层
数据使用LPBoost
,TotalBoost
,为了比较,AdaBoostM1
算法。一个合奏团要有多少成员是很难知道的。为LPBoost
和TotalBoost
,试着用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’);持有从包含(“树桩的数量”);ylabel (“训练误差”);传奇(“演”,“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’);持有从包含(的整体尺寸);ylabel (“旨在错误”);传奇(“演”,“TotalBoost”,“LPBoost”,“位置”,“不”);
结果表明,在50个集成成员的情况下,每个增强算法都能达到10%或更低的损失。
要减小集成的大小,请压缩它们,然后使用removeLearners
.问题是,你应该删除多少个学习者?交叉验证的损失曲线给你一个测量。另一方面,检查学习者的权重LPBoost
和TotalBoost
压实之后。
每=紧凑(adaStump);clp =紧凑(lpStump);ctotal =紧凑(totalStump);figure subplot(2,1,1) plot(clp.TrainedWeights) title(“LPBoost重量”) subplot(2,1,2) plot(ctotal.TrainedWeights) title(“TotalBoost重量”)
这两个LPBoost
和TotalBoost
明确显示集合成员权重可以忽略的点。
删除不重要的团队成员。
每= 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
检查生成的紧凑整体大小。
(1) =谁(“每”);(2) =谁(中电控股的);(3) =谁(“ctotal”);s.bytes
ans = 590844
ans = 236030
ans = 157190
紧凑系综的大小与每个系综中的成员数目近似成正比。
紧凑的
|crossval
|fitcensemble
|kfoldLoss
|损失
|removeLearners
|resubLoss