主要内容

tune robustboost.

抢劫即使训练数据具有噪声,算法也可以提高良好的分类预测。但是,默认值抢劫参数可以产生没有预测的集合。此示例显示了调整参数以获得更好的预测精度的一种方法。

使用标签噪声生成数据。此示例每次观察具有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'“位置”“不”);

图包含轴。轴包含3个类型的线。这些对象表示ERRGOAL = 0.15,ERRERGOAL = 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'“位置”“不”);

图包含轴。轴包含3个类型的线。这些对象表示ERRGOAL = 0.15,ERRERGOAL = 0.01,ADABOOSTM1。

错误目标0.15的误差曲线在绘制范围内最低(最佳)。adaboostm1.错误的误差高于误差目标0.15。对于太乐观的误差目标0.01的曲线比大多数绘制范围的其他算法保持在基本上更高(更差)。

另请参阅

||

相关的话题