このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
RobustBoost
アルゴリズムは,学習データにノイズが存在する場合でも,優れた分類予測を実行できます。ただし,RobustBoost
パラメーターを既定の設定で使用すると,予測精度が十分ではないアンサンブルが生成される可能性があります。この例では,予測精度を高めるためにパラメーターを調整する方法の1つを示します。
ラベルノイズのあるデータの生成。この例では,観測値あたり20の一様乱数を使用しており,最初の5つの数字の合計が2.5を超えた場合(つまり,平均より大きい場合)には,観測値を1
に分類し,それ以外の場合には,0
に分類します。
rng (0,“旋风”)%的再现性Xtrain =兰德(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”,...“NumLearningCycles”, 300,“学习者”,“树”,“LearnRate”, 0.1);
RobustBoost
でアンサンブルを作成します。データの10%は間違って分類されているため,この場合,15%という誤差の目標値は適切です。
rb1 = fitcensemble (Xtrain Ytrain,“方法”,“RobustBoost”,...“NumLearningCycles”, 300,“学习者”,“树”,“RobustErrorGoal”, 0.15,...“RobustMaxMargin”1);
誤差の目標値がかなり高い値に設定されている場合,エラーが返されることに注意してください。
非常に楽観的な誤差の目標値0.01
をもつアンサンブルを作成します。
而已= fitcensemble (Xtrain Ytrain,“方法”,“RobustBoost”,...“NumLearningCycles”, 300,“学习者”,“树”,“RobustErrorGoal”, 0.01);
3つのアンサンブルの再代入誤差を比較します。
图绘制(resubLoss (rb1“模式”,“累积”));持有在情节(resubLoss而已,“模式”,“累积”),“r——”);情节(resubLoss (ada,“模式”,“累积”),“g”。);持有从;包含(树木的数量);ylabel (“Resubstitution错误”);传奇(“ErrorGoal = 0.15”,“ErrorGoal = 0.01”,...“AdaBoostM1”,“位置”,“不”);
RobustBoost
の曲線はすべて,AdaBoostM1
の曲線より低い再代入誤差を示しています。誤差の目標値が0.01
の曲線は,ほとんどの範囲で最も低い再代入誤差を示しています。
Xtest =兰德(2000年,20);Ytest = sum(Xtest(:,1:5),2) > 2.5;idx = randsample(2000、200);欧美(idx) = ~欧美(idx);图;情节(损失(rb1 Xtest,欧美,“模式”,“累积”));持有在情节(损失(Xtest而已,欧美,“模式”,“累积”),“r——”);情节(损失(ada Xtest,欧美,“模式”,“累积”),“g”。);持有从;包含(树木的数量);ylabel (测试错误的);传奇(“ErrorGoal = 0.15”,“ErrorGoal = 0.01”,...“AdaBoostM1”,“位置”,“不”);
0.15誤差の目標値がの誤差曲線は,プロットの範囲では最も低い値(最も精度が高い)であることを示しています。AdaBoostM1
0.15は,誤差の目標値の曲線より誤差が大きくなっています。過度に楽観的な誤差の目標値0.01の曲線は,プロットされたほとんどの範囲において,他の曲線よりも顕著に高い誤差(低い精度)を示しています。