当抢劫
即使训练数据具有噪声,算法也可以提高良好的分类预测。但是,默认值抢劫
参数可以产生没有预测的集合。此示例显示了调整参数以获得更好的预测精度的一种方法。
使用标签噪声生成数据。此示例每次观察具有20个均匀的随机数,并将观察分类为1
如果前五个数字的总和超过2.5(因此大于平均值),并且0.
否则:
RNG(0,'twister')重复性的%XTrain = Rand(2000,20);YTrain = Sum(XTrain(:,1:5),2)> 2.5;
要添加噪声,随机切换10%的分类:
idx = randsample(2000,200);YTrain(IDX)=〜Ytrain(IDX);
创建一个合奏adaboostm1.
为了比较目的:
ada = fitcensemble(xtrain,ytrain,'方法'那'adaboostm1'那......'numlearnicalnycle', 300,'学习者'那'树'那'学习',0.1);
创建一个合奏抢劫
。由于数据的分类不正确10%,因此可能是15%的错误目标是合理的。
RB1 = FitCensemble(Xtrain,Ytrain,'方法'那'robustboost'那......'numlearnicalnycle', 300,'学习者'那'树'那“RobustErrorGoal”,0.15,......“RobustMaxMargin”,1);
请注意,如果将错误目标设置为足够高的值,则软件将返回错误。
创建一个具有非常乐观的错误目标的合奏,0.01
:
RB2 = FitCensemble(Xtrain,Ytrain,'方法'那'robustboost'那......'numlearnicalnycle', 300,'学习者'那'树'那“RobustErrorGoal”,0.01);
比较三个合奏的重新提交错误:
图绘图(RERUBLOS(RB1,'模式'那'累积'));hold在绘图(RERBOLS(RB2,'模式'那'累积'),'r--');情节(Resubloss(Ada,'模式'那'累积'),'g。');hold关闭;Xlabel('树的数量');ylabel('重新提交错误');传奇(“ErrorGoal = 0.15”那'Errorgoal = 0.01'那......'adaboostm1'那“位置”那“不”);
全部抢劫
曲线显示较低的重生误差adaboostm1.
曲线。错误目标0.01
曲线显示大部分范围内的最低重生误差。
xtest =兰特(2000,20);YTEST = SUM(XTEST(:,1:5),2)> 2.5;idx = randsample(2000,200);ytest(idx)=〜ytest(idx);图;绘图(损失(RB1,XTEST,YTEST,'模式'那'累积'));hold在情节(损失(Xtest而已,欧美,'模式'那'累积'),'r--');情节(亏损(ADA,XTEST,YTEST,'模式'那'累积'),'g。');hold关闭;Xlabel('树的数量');ylabel('测试错误');传奇(“ErrorGoal = 0.15”那'Errorgoal = 0.01'那......'adaboostm1'那“位置”那“不”);
错误目标0.15的误差曲线在绘制范围内最低(最佳)。adaboostm1.
错误的误差高于误差目标0.15。对于太乐观的误差目标0.01的曲线比大多数绘制范围的其他算法保持在基本上更高(更差)。