主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

菲特森布尔

アンサンブル学習器を分類用に準備

説明

Mdl= fitcensemble (TblResponseVarNameは100本の分類木のブースティングの結果および予測子と応答データのテーブルTblが格納されている学習済みアンサンブル分類モデルオブジェクト(Mdl)を返します。ResponseVarNameは,Tbl内の応答変数の名前です。既定では,菲特森布尔はバイナリ分類にLogitBoostを,マルチクラス分類にAdaBoostM2を使用します。

Mdl= fitcensemble (Tbl公式は,公式を適用して、モデルをテーブルTbl内の予测子および応答のデータにあてはめます。公式は,Mdlのあてはめに使用する応答およびTbl内の予測子変数サブセットの説明モデルです。たとえば、“Y ~ X1 + X2 + X3”は応答変数资源描述。Yを予測子変数Tbl.X1Tbl.X2およびTbl.X3の関数としてあてはめます。

Mdl= fitcensemble (TblYは,テーブルTbl内の変数をすべて予測子変数として扱います。Yは,Tblに含まれていないクラスラベルの配列です。

Mdl= fitcensemble (XYは,行列X内の予测子データとY内のクラスラベルの配列を使用します。

Mdl= fitcensemble (___名称,值は、1.つ以上の名称,值ペア引数で指定される追加のオプションと、前の構文の入力引数のいずれかを使用します。たとえば、学習サイクル数、アンサンブル集約法、10分割交差検証の実施を指定できます。

すべて折りたたむ

データ内の使用可能な予测子変数をすべて使用して,予测アンサンブル分类を作成します。次に,予测子の数を减らして,别のアンサンブルに学习をさせます。これらのアンサンブルの标本内予测精度を比较します。

census1994データセットを読み込みます。

加载census1994

データセット全体と既定のオプションを使用して、分類モデルのアンサンブルに学習をさせます。

Mdl1 = fitcensemble (adultdata,“工资”
Mdl1 = ClassificationEnsemble PredictorNames: {1x14 cell} ResponseName: 'salary' CategoricalPredictors: [2 4 6 7 8 9 10 14] ClassNames: [<=50K >50K] ScoreTransform: 'none' NumObservations: 32561 NumTrained: 100 Method: 'LogitBoost' LearnerNames: {'Tree'} ReasonForTermination:“在完成要求的培训周期数后正常终止。”FitInfo描述:{2x1 cell}属性,方法

MdlClassificationEnsembleモデルです。Mdlには,次のような顕著な特徴があります。

  • データには2つのクラスがあるので,アンサンブル集約アルゴリズムはLogitBoostです。

  • アンサンブル集約法がブースティングアルゴリズムなので,最大10分割を許容する分類木がアンサンブルを構成します。

  • 100年本の木がアンサンブルを構成します。

このアンサンブル分类を使用して,データから无作为に抽出した5つの観测値のラベルを予测します。予测されたラベルと真の値を比较します。

rng(1)%的再现性[pX, pIdx] = datasample (adultdata 5);标签=预测(Mdl1, pX);表(标签,adultdata.salary (pIdx),“变化无常”,{'预料到的'“真相”})
ans=5×2表预测的真理  _________ _____ <= 50 k < = 50 k < = 50 k < = 50 k < = 50 k < = 50 k < = 50 k < = 50 k < = 50 k < = 50 k

年龄教育のみを使用して,新しいアンサンブルに学习をさせます。

Mdl2 = fitcensemble (adultdata,“工资~年龄+教育程度”);

Mdl1MDL2の再代入損失を比較します。

rsLoss1 = resubLoss (Mdl1)
rsLoss1 = 0.1058
rsLoss2=resubLoss(Mdl2)
rsLoss2 = 0.2037

すべての予測子を使用するアンサンブルの方が,標本内誤分類率が小さくなります。

菲特森布尔を使用して,ブースティング分類木のアンサンブルに学習をさせます。名前と値のペアの引数“麻木”を指定して数値予測子をビン化することにより,学習時間を短縮します。この引数は,菲特森布尔が木学習器を使用する場合のみ有効です。学習後,学習済みモデルの边沿プロパティと関数离散化を使用して,ビン化された予测子データを再现できます。

标本データセットを生成します。

rng (“默认”%的再现性N = 1 e6;X = [mvnrnd([-1 -1],eye(2),N);mvnrnd([1],眼(2),N)];y = [0 (N, 1);的(N, 1)];

データセットを可視化します。

图散射(X (1: N, 1), X (1: N, 2),“标记”“。”'MarkerEdgeAlpha',0.01)保持散射(X (N + 1:2 * N, 1), X (N + 1:2 * N, 2),“标记”“。”'MarkerEdgeAlpha', 0.01)

適応ロジスティック回帰 (LogitBoost,バイナリ分类の既定)を使用して,ブースティング分类木のアンサンブルに学习をさせます。比较のため,关数の実行时间を测定します。

tic Mdl1 = fitcensemble(X,y);toc
运行时间为478.988422秒。

名前と値のペアの引数“麻木”を使用して、学習を高速化します。“麻木”の値として正の整数スカラーを指定した場合,指定した個数の同確率のビンにすべての数値予測子がビン化され,元のデータではなくビンのインデックスに対して木が成長します。カテゴリカル予測子はビン化されません。

tic Mdl2 = fitcensemble(X,y,“麻木”,50); toc
经过时间是165.598434秒。

元のデータではなくビン化されたデータを使用すると,処理が約3倍高速になります。経過時間はオペレーティングシステムによって変化する可能性があることに注意してください。

再代入による分類誤差を比較します。

rsLoss1 = resubLoss (Mdl1)
rsLoss1=0.0788
rsLoss2=resubLoss(Mdl2)
rsLoss2 = 0.0788

この例では,予測子の値をビン化することにより,精度を失わずに学習時間が短縮されました。一般に,この例のような大規模な学習データセットを使用する場合,ビン化オプションを使用すると学習を高速化できますが,精度が低下する可能性があります。さらに学習時間を短縮するには,指定するビンの個数を少なくします。

学习済みモデルの边沿プロパティと関数离散化を使用して,ビン化された予測子データを再現します。

X = Mdl2.X;%的预测数据Xbinned = 0(大小(X));边缘= Mdl2.BinEdges;%查找分级预测的指标。idxNumeric =找到(~ cellfun (@isempty边缘));如果iscolumn(idxNumeric) idxNumeric = idxNumeric';结束j = idxNumeric x = x (:,j);%如果x是一个表,则将x转换为数组。如果istable(x)x=表2阵列(x);结束%使用离散化函数将x分组到箱子中。xbinned =离散化(x,[无穷;边缘{};正]);Xbinned (:, j) = Xbinned;结束

数値予測子の場合1からビンの個数までの範囲にあるビンのインデックスがXbinnedに格納されます。カテゴリカル予測子の場合,Xbinnedの値は0になります。Xが含まれている場合,対応するXbinnedの値はになります。

ブースティング分類木のアンサンブルの汎化誤差を推定します。

电离层データセットを読み込みます。

加载电离层

AdaBoostM1と10分割の交差検証を使用して,分類木のアンサンブルを交差検証します。決定木テンプレートを使用して各木を最大5回分割するように指定します。

rng (5);%的再现性t = templateTree (“MaxNumSplits”,5);Mdl=fitcensemble(X,Y,“方法”'AdaBoostM1'“学习者”,t,'CrossVal'“上”);

Mdl分类分区集合モデルです。

10分割交差検証を行った累積誤分類率をプロットします。アンサンブルの推定汎化誤差を表示します。

kflc = kfoldLoss (Mdl,“模式”“累积”);图;情节(kflc);ylabel (“10倍误分类率”);包含(“学习周期”);

图中包含一个坐标轴。轴包含一个线型对象。

estGenError = kflc(结束)
estGenError = 0.0769

既定の設定では,kfoldLossは泛化误差を返します。しかし,累积损失をプロットすると,アンサンブル内に弱学习器が蓄积するにつれて损失がどのように変化するかを観察できます。

このアンサンブルでは,約50個の弱学習器が蓄積した後の誤分類率が約0.06になっています。そして,弱学習器がさらにアンサンブルに加わると,誤分類率がわずかに増加しています。

アンサンブルの汎化誤差が満足できるものになった場合は,予測モデルを作成するため,交差検証以外の設定をすべて使用して,再度アンサンブルに学習をさせます。ただし,木あたりの決定分岐の最大数や学習サイクル数などのハイパーパラメーターを調整することをお勧めします。

菲特森布尔を使用してハイパーパラメーターを自动的に最适化します。

电离层データセットを読み込みます。

加载电离层

自動的なハイパーパラメーター最適化を使用して,5分割交差検証損失を最小化するハイパーパラメーターを求めることができます。

Mdl = fitcensemble (X, Y,'OptimizeHyperparameters'“汽车”

この例では、再現性を得るため、乱数シードを設定し、“预期改善加成”の獲得関数を使用します。また,ランダムフォレストアルゴリズムの再現性を得るため,木学習器について名前と値のペアの引数“复制”として真的を指定します。

rng (“默认”) t = templateTree(“复制”,真正的);Mdl = fitcensemble (X, Y,'OptimizeHyperparameters'“汽车”“学习者”,t,...“HyperparameterOptimizationOptions”结构(“AcquisitionFunctionName”“预期改善加成”)))
|===================================================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | |方法NumLearningC - | LearnRate | MinLeafSize | | |结果| | |运行时(观察)| (estim) | |永昌龙| | ||===================================================================================================================================| | 最好1 | | 0.10256 | 1.6978 | 0.10256 | 0.10256 | RUSBoost | 11 | 0.010199 | 17 |
|2 | Best | 0.062678 | 9.4354 | 0.062678 | 0.064264 | LogitBoost | 206 | 0.96537 | 33|
| 3 |接受| 0.099715 | 7.614 | 0.062678 | 0.062688 | AdaBoostM1 | 130 | 0.0072814 | 2 |
|4 |接受|0.068376 |1.6045 |0.062678 |0.062681 |袋|25 |-  | 5 |
| 5 |接受| 0.065527 | 20.359 | 0.062678 | 0.062699 | LogitBoost | 447 | 0.5405 | 13 |
|6 |接受| 0.074074 | 7.1054 | 0.062678 | 0.0627 | GentleBoost | 157 | 0.60495 | 108|
| 7 | Accept | 0.082621 | 0.9688 | 0.062678 | 0.064102 | GentleBoost | 19 | 0.0010515 | 42 |
| 8 |接受| 0.17379 | 0.49564 | 0.062678 | 0.06268 | LogitBoost | 10 | 0.001079 | 149 |
| 9 | Accept | 0.076923 | 21.003 | 0.062678 | 0.062676 | GentleBoost | 468 | 0.035181 | 2 |
| 10 |接受| 0.068376 | 13.575 | 0.062678 | 0.062676 | AdaBoostM1 | 221 | 0.99976 | 7 |
|11 |接受| 0.10541 | 3.6394 | 0.062678 | 0.062676 | RUSBoost | 59 | 0.99629 | 31|
|12 |接受| 0.068376 | 3.3423 | 0.062678 | 0.062674 | AdaBoostM1 | 53 | 0.20568 | 26|
| 13 | Accept | 0.096866 | 1.6005 | 0.062678 | 0.062672 | RUSBoost | 22 | 0.0010042 | 2 |
| 14 |接受| 0.071225 | 1.201 | 0.062678 | 0.062688 | LogitBoost | 23 | 0.99624 | 1 |
| 15 |接受| 0.082621 | 0.87944 | 0.062678 | 0.062687 | AdaBoostM1 | 11 | 0.95241 | 2 |
|16 |接受|0.079772 |29.788 |0.062678 |0.062679 |AdaBoostM1 |486 |0.23903 | 35 |
| 17 |接受| 0.35897 | 23.651 | 0.062678 | 0.06267 |包| 499 | - | 169 |
| 18 | Accept | 0.074074 | 0.653 | 0.062678 | 0.062674 | Bag | 10 | - | 1 |
| 19 |接受| 0.088319 | 32.811 | 0.062678 | 0.062674 | RUSBoost | 498 | 0.0010437 | 3 |
|20 |接受| 0.068376 | 6.1279 | 0.062678 | 0.062673 | GentleBoost | 130 | 0.0010021 | 3|
|===================================================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | |方法NumLearningC - | LearnRate | MinLeafSize | | |结果| | |运行时(观察)| (estim) | |永昌龙| | ||===================================================================================================================================| | 21日|接受| 0.17379 | 22.601 | 0.062678 | 0.06271 | LogitBoost | 496 | 0.0010096 | 146 |
| 22 |接受| 0.071225 | 2.9727 | 0.062678 | 0.062713 | GentleBoost | 71 | 0.91141 | 9 |
| 23 | Accept | 0.64103 | 1.1288 | 0.062678 | 0.062706 | RUSBoost | 20 | 0.0012846 | 173 |
|24 |接受|0.11111 |1.537 |0.062678 |0.062697 |RUSBoost |24 |0.96694 | 6 |
| 25 |接受| 0.17379 | 5.5632 | 0.062678 | 0.062686 | LogitBoost | 136 | 0.001 | 3 |
|26 |接受| 0.35897 | 8.0556 | 0.062678 | 0.062686 | AdaBoostM1 | 156 | 0.003243 | 174|
|27 |接受| 0.065527 | 1.0791 | 0.062678 | 0.062686 |包| 21 |-2|
|28 |接受|0.17379 |1.7562 |0.062678 |0.062689 |LogitBoost |42 |0.0010283 | 21 |
|29 |接受| 0.074074 | 4.3825 | 0.062678 | 0.062689 | GentleBoost | 108 | 0.0010055 | 173|
|30 |接受| 0.065527 | 1.4893 | 0.062678 | 0.062689 |物流推进| 32 | 0.97832 | 4|

__________________________________________________________ 优化完成。maxobjective达到30个。总函数计算:30总运行时间:278.5509秒。总目标函数评价时间:238.1176方法NumLearningCycles LearnRate MinLeafSize __________ _________________ _________ ___________ LogitBoost 206 0.96537 33观测目标函数值= 0.062678估计目标函数值= 0.062689函数计算时间= 9.4354最佳估计可行点(根据模型):方法NumLearningCycles LearnRate MinLeafSize __________ _________________ _________ ___________ LogitBoost 206 0.96537 33估计的目标函数值= 0.062689估计的函数计算时间= 9.4324
Mdl = ClassificationEnsemble ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' ' 'g'} ScoreTransform: 'none' NumObservations: 351 HyperparameterOptimizationResults: [1×1 BayesianOptimization] NumTrained: 206 Method: 'LogitBoost' LearnerNames: {'Tree'} reasonforterminate:“在完成要求的培训周期数后正常终止。”FitInfo: [206×1 double] FitInfoDescription: {2×1 cell}属性,方法

最適化では,バイナリ分類のアンサンブル集約法,NumLearningCycles,適用可能な手法のLearnRate、および木学習器のMinLeafSizeに対して探索を行いました。出力は、推定交差検証損失が最小になるアンサンブル分類器です。

十分な予測性能をもつブースティング分類木のアンサンブルを作成する方法の 1つは、交差検証を使用して決定木の複雑度レベルを調整することです。最適な複雑度レベルを求めるときに、学習率を調整して学習サイクル数を最小化します。

この例では,交差検証オプション(名前と値のペアの引数“KFold”)と関数kfoldLossを使用して、最適なパラメーターを手動で求めます。あるいは、名前と値のペアの引数'OptimizeHyperparameters'を使用して自動的にハイパーパラメーターを最適化することもできます。アンサンブル分類の最適化を参照してください。

电离层データセットを読み込みます。

加载电离层

最適な木の複雑度レベルを求めるため,以下を行います。

  1. 一連のアンサンブルを交差検証します。以後のアンサンブルについて,決定株(1つの分割)から最大n- 1 個の分割まで木の複雑度レベルを指数的に増やします。nは標本サイズです。また,各アンサンブル学習率0.1をから1までの間で変化させます。

  2. 各アンサンブルの交差検証済み誤分類率を推定します。

  3. 木の複雑度レベル j j 1 J ) について、学習サイクル数に対してプロットすることにより、アンサンブルの交差検証済み累積誤分類率を比較します。同じ 身材に、各学習率に対応する別々の曲線をプロットします。

  4. 誤分類率が最小になる曲線を選択し,対応する学習サイクルおよび学習率に注目します。

深い分類木と切り株を交差検証します。これらの分類木は基準として機能します。

rng(1)%的再现性MdlDeep=fitctree(X,Y,'CrossVal'“上”“合并树叶”“关”...“MinParentSize”1);MdlStump = fitctree (X, Y,“MaxNumSplits”,1,'CrossVal'“上”);

5分割の交差検証を使用して,150本のブースティング分類木のアンサンブルを交差検証します。木のテンプレートを使用して, 3. 0 3. 1 3. という数列の値を使用して分割の最大数を変化させます。は, 3. n- 1 を超えない値です。各バリアントについて、{0.1, 0.25, 0.5, 1} という集合の各値を使用して、それぞれの学習率を調整します。

n =大小(X, 1);M =底(log(n - 1)/log(3))learnRate = [0.1 0.25 0.5 1];numLR =元素个数(learnRate);maxNumSplits = 3。^ (0:m);numMNS =元素个数(maxNumSplits);numTrees = 150;Mdl =细胞(numMNS numLR);k = 1: numLRj = 1:numMNS t = templateTree(“MaxNumSplits”maxNumSplits (j));Mdl {j, k} = fitcensemble (X, Y,“NumLearningCycles”numTrees,...“学习者”,t,“KFold”5,“LearnRate”, learnRate (k));结束结束

各アンサンブルについて,および基准として机能する分类木について,交差検证済み累积误分类率を推定します。

kflAll=@(x)kfoldLoss(x,“模式”“累积”);errorCell = cellfun (Mdl kflAll,“制服”,错误的);误差=重塑(cell2mat(errorCell),[numTrees numel(maxNumSplits)numel(learnRate)]);errorDeep = kfoldLoss(MdlDeep);errorStump = kfoldLoss(MdlStump);

アンサンブル内の木の本数が増加すると交差検証済み誤分類率がどのように変化するかをプロットします。同じプロットに学習率ごとの曲線をプロットし,木の複雑度レベルを変えた別のプロットをそれぞれ作成します。木の複雑度レベルからプロット対象となるサブセットを選択します。

mnsPlot = [1 round(nummel (maxnumsplents)/2) nummel (maxnumsplents)];数字K = 1:3副区(2,2,k)的积(挤压(错误(:,mnsPlot(K),:)),“线宽”,2)轴紧的抓住h=gca;绘图(h.XLim,[errorDeep errorDeep],“。b”“线宽”, 2)情节(h。XLim,[errorStump errorStump],“r”“线宽”2)图(h.XLim min(最低(错误(:,mnsPlot (k):)))。* [1],“——k”) h.YLim = [0 0.2];包含(树木的数量) ylabel (“旨在misclass。率的)标题(sprintf (“MaxNumSplits = % 0.3 g”maxNumSplits (mnsPlot (k))))结束hL=图例([cellstr(num2str)(learnRate'),'学习率= %0.2f'));...“深树”“树桩”“最小误分类率”]); 位置(1)=0.6;

各曲線では,アンサンブルの最適な木の本数の位置で交差検証済み誤分類率が最小になります。

全体的に誤分類率が最小になる最大分割数、木の本数および学習率を特定します。

[minErr, minErrIdxLin] = min(错误(:));[idxNumTrees, idxMNS idxLR] = ind2sub(大小(错误),minErrIdxLin);流(“\ nMin。misclass。率= % 0.5 f 'minErr)
分钟misclass。率= 0.05413
流(“\ nOptimal参数值:\ nNum。树= % d ',idxNumTrees);
最佳参数值:树数=47
流(“\nMaxNumSplits=%d\n学习率=%0.2f\n”...maxNumSplits (idxMNS) learnRate (idxLR))
学习速率= 0.25

最適なハイパーパラメーターおよび学習セット全体に基づいて予測アンサンブルを作成します。

tFinal=模板树(“MaxNumSplits”maxNumSplits (idxMNS));MdlFinal = fitcensemble (X, Y,“NumLearningCycles”idxNumTrees,...“学习者”tFinal,“LearnRate”,learnRate(idxLR))
MdlFinal = ClassificationEnsemble ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' ' 'g'} ScoreTransform: 'none' NumObservations: 351 NumTrained: 47 Method: 'LogitBoost' LearnerNames: {'Tree'} ReasonForTermination: '在完成请求的训练周期数后正常终止。'FitInfo: [47×1 double] FitInfoDescription: {2×1 cell}属性,方法

MdlFinalClassificationEnsembleです。与えられた予测子データに対してレーダー反射が良好であるかどうかを予测するには,予测子データとMdlFinal预测に渡すことができます。

交差検証オプション(“KFold”)と関数kfoldLossを使用して最適な値を手動で求める代わりに、名前と値のペアの引数'OptimizeHyperparameters'を使用できます。'OptimizeHyperparameters'を指定すると,ベイズ最適化を使用して,最適なパラメーターが自動的に求められます。'OptimizeHyperparameters'を使用して取得した最適な値は,手動で求めたものと異なる可能性があります。

mdl = fitcensemble (X, Y,'OptimizeHyperparameters',{“NumLearningCycles”“LearnRate”“MaxNumSplits”})
|第二个月月第第第二个月第礼礼礼礼礼第第第第第第第第二个月第第礼第第第第第第第第第第第二个月第第礼第第第第第礼第第第礼第第第礼第第第第第礼第第礼第第第第礼第第第第礼第第第礼第第第第礼第第第第第第礼第第第第第第第礼第第第第第第礼第第第第第第第第礼第第礼第第第第礼第第礼第第第第第第第礼第第第第第第礼第第第第第第第礼第第第第第礼第第第礼第第第礼第礼第第礼第第第第礼第第第第第第礼第第第第第礼第第第第第第礼第第第第第第礼第第第第第礼第第第第第第第第第第第第第第第第第第第第第第第第第第第第第| |运行时|(观察)|(估计)第二个月第第第第二方第第==================第第二个月月月月第四个月月月月第第二个月第第第二个月月第第第第==================第第第第第第第二个月月第四个月月第第第四方第四方方第第第第========================第第第第第第==================第第第第第第第第第============第第第第第第第第第第第第第第==================第第第第第第第第第第第第第第第第第第第第===第第第第第第第第第第第第第第第第第第第第第===第第第第第第第第第第===第第第第第第第第第第第第===第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第364 | 3|
| 2 |接受| 0.17379 | 0.79961 | 0.17379 | 0.17379 | 15 | 0.013089 | 144 |
| 3 |最佳| 0.065527 | 1.4585 | 0.065527 | 0.065538 | 31 | 0.47201 | 2 |
|4 |接受| 0.074074 | 13.988 | 0.065527 | 0.065549 | 340 | 0.92167 | 7|
|5 |接受| 0.088319 | 0.92718 | 0.065527 | 0.072102 | 22 | 0.2432 | 1|
|6 |接受| 0.074074 | 0.44748 | 0.065527 | 0.071237 | 10 | 0.7177 | 48|
| 7 |接受| 0.08547 | 0.52207 | 0.065527 | 0.074847 | 10 | 0.57238 | 2 |
| 8 |接受| 0.074074 | 0.59154 | 0.065527 | 0.065556 | 11 | 0.97207 | 3 |
|9 |最佳| 0.059829 | 1.6809 | 0.059829 | 0.059648 | 42 | 0.92135 | 343|
| 10 |最佳| 0.054131 | 2.2481 | 0.054131 | 0.054148 | 49 | 0.97807 | 37 |
|11 |接受|0.065527 |2.1686 |0.054131 |0.059479 |48 |0.9996 |2 |
| 12 |接受| 0.068376 | 2.5909 | 0.054131 | 0.061923 | 58 | 0.91401 | 323 |
|13 |接受| 0.17379 | 0.48621 | 0.054131 | 0.062113 | 10 | 0.0010045 | 4|
| 14 |接受| 0.17379 | 0.55949 | 0.054131 | 0.059231 | 10 | 0.059072 | 148 |
|15 |接受| 0.065527 | 1.9568 | 0.054131 | 0.062559 | 46 | 0.76657 | 19|
| 16 |接受| 0.065527 | 2.5692 | 0.054131 | 0.062807 | 57 | 0.64443 | 311 |
| 17 |接受| 0.17379 | 0.55723 | 0.054131 | 0.062748 | 10 | 0.0035012 | 2 |
| 18 |接受| 0.12821 | 1.9669 | 0.054131 | 0.062043 | 47 | 0.055757 | 197 |
| 19 |接受| 0.05698 | 1.2814 | 0.054131 | 0.060837 | 27 | 0.98997 | 12 |
|20 |接受| 0.059829 | 1.1975 | 0.054131 | 0.060881 | 26 | 0.99112 | 13|
|====================================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | NumLearningC - | LearnRate | MaxNumSplits | | |结果| | |运行时(观察)| (estim) |永昌龙| | ||====================================================================================================================| | 21日|接受| 0.065527 | 1.2255 | 0.054131 | 0.061441 | 25 | 0.99183 | 9 |
|22 |接受| 0.17379 | 1.3748 | 0.054131 | 0.061461 | 29 | 0.0032434 | 344|
| 23 |接受| 0.068376 | 3.055 | 0.054131 | 0.061768 | 67 | 0.18672 | 11 |
| 24 |接受| 0.059829 | 5.0035 | 0.054131 | 0.061785 | 119 | 0.3125 | 1 |
| 25 |接受| 0.059829 | 7.6141 | 0.054131 | 0.061793 | 176 | 0.25401 | 304 |
|26 |接受| 0.059829 | 5.1133 | 0.054131 | 0.05988 | 115 | 0.34331 | 343|
| 27 |接受| 0.059829 | 7.4027 | 0.054131 | 0.059895 | 178 | 0.26684 | 13 |
| 28 |接受| 0.059829 | 5.2506 | 0.054131 | 0.059872 | 118 | 0.32365 | 3 |
| 29 |接受| 0.062678 | 10.523 | 0.054131 | 0.059871 | 238 | 0.22465 | 1 |
|30 |接受| 0.14815 | 0.57384 | 0.054131 | 0.059705 | 10 | 0.15205 | 2|

__________________________________________________________ 优化完成。maxobjective达到30个。总函数计算:30总运行时间:122.7983秒。总目标函数评价时间:91.3933NumLearningCycles LearnRate maxnumspl_________________ _________ ____________ 49 0.97807 37观察到的目标函数值= 0.054131估计的目标函数值= 0.062545函数评估时间= 2.2481最佳估计可行点(根据模型):NumLearningCycles LearnRate maxnumsplit _________________ _________ ____________ 119 0.3125 1估计的目标函数值= 0.059705估计的函数评估时间= 5.1842
mdl = ClassificationEnsemble ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' ' 'g'} ScoreTransform: 'none' NumObservations: 351 HyperparameterOptimizationResults: [1×1 BayesianOptimization] NumTrained: 119 Method: 'LogitBoost' LearnerNames: {'Tree'} reasonforterminate:“在完成要求的培训周期数后正常终止。”FitInfo: [119×1 double] FitInfoDescription: {2×1 cell}属性,方法

入力引数

すべて折りたたむ

モデルを学習させるために使用する標本データ。テーブルとして指定します。Tblの各行は 1.つの観測値に、各列は 1.つの予測子変数に対応します。Tblには,応答変数用の追加の1列を含めることができます。文字ベクトルの细胞配列ではない细胞配列と复数列の変数は使用できません。

  • Tblに応答変数が含まれている場合に他の変数をすべて予測子として使用するには,ResponseVarNameを使用して応答変数を指定します。

  • Tblに応答変数が含まれている場合に他の変数の一部のみを予測子として使用するには、公式を使用して式を指定します。

  • Tblに応答変数が含まれていない場合は,Yを使用して応答データを指定します。応答変数の长さとTblの行数は,同じでなければなりません。

メモ

メモリと実行时间を节约するには,TblではなくXYを指定します。

データ型:表格

応答変数名。Tbl内の応答変数の名前を指定します。

ResponseVarNameには文字ベクトルまたは字符串スカラーを指定しなければなりません。たとえば,资源描述。Yが応答変数である场合,ResponseVarNameには“Y”を指定します。それ以外の場合、菲特森布尔Tblの列をすべて予測子変数として扱います。

応答変数は、绝对的配列、文字配列、串配列、合乎逻辑ベクトル、数値ベクトル、または文字ベクトルの 细胞配列でなければなりません。応答変数が文字配列の場合、各要素は配列の 1つの行に対応しなければなりません。

分類の場合,名前と値のペアの引数一会を使用してクラスの順序を指定できます。それ以外の場合、菲特森布尔がクラスの順序を決定してMdl。一会に格納します。

データ型:烧焦|字符串

応答変数および予測子変数サブセットの説明モデル。“Y ~ x1 + x2 + x3”という形式の文字ベクトルまたは字符串スカラーを指定します。この形式では,Yは応答変数を、x1x2およびx3は予測子変数を表します。

モデルに学習をさせるための予測子としてTbl内の変数のサブセットを指定するには,式を使用します。式を指定した場合,公式に現れないTbl内の変数は使用されません。

式の変数名はTblの変数名(Tbl.Properties.VariableNames)であり,有効なMATLAB®識別子でなければなりません。関数isvarnameを使用してTblの変数名を検証できます。変数名が有効でない場合、関数matlab.lang.makeValidNameを使用してそれらを変換できます。

データ型:烧焦|字符串

予测子データ。数値行列を指定します。

各行は1つの観測値に,各列は1つの予測子変数に対応します。

Yの長さとXの行数は等しくなければなりません。

予測子の名前をXに表示される順序で指定するには、PredictorNames名前と値のペアの引数を使用します。

データ型:|

応答データ。绝对的配列、文字配列、一串配列、合乎逻辑ベクトル、数値ベクトル、または文字ベクトルの 细胞配列を指定します。Yの各エントリは,XまたはTblの対応する行の観測値に対する応答またはラベルです。Yの長さとXまたはTblの行数は,同じでなければなりません。応答変数が文字配列の場合,各要素は配列の1つの行に対応しなければなりません。

名前と値のペアの引数一会を使用してクラスの順序を指定できます。それ以外の場合、菲特森布尔がクラスの順序を決定してMdl。一会に格納します。

データ型:分类|烧焦|字符串|逻辑|||细胞

名前と値のペアの引数

オプションの名称,值引数のコンマ区切りペアを指定します。的名字は引数名で,价值は対応する値です。的名字は引用符で囲まなければなりません。Name1, Value1,…,的家のように,複数の名前と値のペアの引数を,任意の順番で指定できます。

例:'CrossVal', '上', 'LearnRate',0.05は10分割交差検証を実施し,学習率として0.05を使用するよう指定します。

メモ

交差検証の名前と値のペアの引数を名前と値のペアの引数'OptimizeHyperparameters'と同時に使用することはできません。'OptimizeHyperparameters'の場合の交差検証は,名前と値のペアの引数“HyperparameterOptimizationOptions”を使用することのみによって変更できます。

一般的なアンサンブルオプション

すべて折りたたむ

アンサンブル集約法。“方法”と次のいずれかの値から構成されるコンマ区切りのペアとして指定します。

メソッド 分类问题のサポート 関連する名前と値のペアの引数
“包” 引导聚合(バギング、ランダム フォレスト[2]など) -“方法”“包”である場合,菲特森布尔はバギングを使用し,既定では各分岐で無作為に予測子を選択します。無作為な選択を行わずにバギングを使用するには,“NumVariablesToSample”の値が“所有”であるツリー学習器を使用するか,判別分析学習器を使用します。 バイナリおよびマルチクラス 該当なし
“子空间” ランダム部分空間 バイナリおよびマルチクラス NPredToSample
'AdaBoostM1' 適応ブースティング バイナリのみ LearnRate
'AdaBoostM2' 適応ブースティング マルチクラスのみ LearnRate
“GentleBoost” ジェントル適応ブースティング バイナリのみ LearnRate
“LogitBoost” 適応ロジスティック回帰 バイナリのみ LearnRate
“LPBoost” 線形計画ブースティング——优化工具箱™が必要的 バイナリおよびマルチクラス MarginPrecision
“RobustBoost” ロバスト ブースティング — 优化工具箱が必要 バイナリのみ RobustErrorGoalRobustMarginSigmaRobustMaxMargin
“俄罗斯助推” ランダムアンダーサンプリングブースティング バイナリおよびマルチクラス LearnRateRatioToSmallest
“TotalBoost” 完全補正ブースティング — 优化工具箱が必要 バイナリおよびマルチクラス MarginPrecision

バギング(“包”) またはブースティング (“TotalBoost”“俄罗斯助推”'AdaBoostM1''AdaBoostM2'“GentleBoost”“LogitBoost”“RobustBoost”または“LPBoost”)を使用する場合,学習データのサンプリングオプション(FResample取代重新取样)を指定できます。

既定値は以下のとおりです。

  • 木学習器のみが“学习者”に含まれている場合,バイナリ問題では“LogitBoost”,マルチクラス問題では'AdaBoostM2'

  • 木学習器と判別分析学習器の両方が“学习者”に含まれている場合,バイナリ問題では'AdaBoostM1',マルチクラス問題では'AdaBoostM2'

  • 木学習器が“学习者”に含まれていない场合,“子空间”

アンサンブル集約アルゴリズムの詳細と例については,アルゴリズムヒントアンサンブルアルゴリズムおよび適用するアンサンブル集約法の選択を参照してください。

例:“方法”,“包”

アンサンブル学习のサイクル数。“NumLearningCycles”と正の整数または“所有预测组合”から構成されるコンマ区切りのペアとして指定します。

  • 正の整数を指定した場合、すべての学習サイクルで、1つの弱学習器が学习者内のすべてのテンプレートオブジェクトについて学習します。この結果,延べNumLearningCycles * numel(学习者)個の学習器が学習を行います。

  • “所有预测组合”を指定する場合は,方法“子空间”に設定し,学习者に対して1つの学習器のみを指定します。このように設定すると,予測子が一度にNPredToSample個抽出され,その可能な組み合わせすべてに対して学習器が学習を行います。この結果,nchoosek(尺寸(X,2),未指定样本)個の学習器が学習を行います。

アンサンブルはすべての学習済み学習器を使用して構成され、Mdl。训练に格納されます。

詳細は,ヒントを参照してください。

例:“NumLearningCycles”,500年

データ型:||烧焦|字符串

アンサンブルで使用する弱学習器。“学习者”と弱学習器の名前,弱学習器テンプレートオブジェクト,または弱学習器テンプレートオブジェクトの细胞ベクトルから構成されるコンマ区切りのペアとして指定します。

弱学習器 弱学習器の名前 テンプレート オブジェクト作成関数 方法の設定
判別分析 “判别” 模板判别式 “子空间”を推奨
K最近傍 “资讯” 模板 “子空间”のみ
决定木 “树” 模板树 “子空间”を除くすべての手法

  • 弱学習器の名前(“判别”“资讯”または“树”) - - -菲特森布尔は、テンプレート オブジェクト作成関数が既定の設定で作成した弱学習器を使用します。たとえば、“学习者”,“判别”という指定は“学习者”,templateDiscriminant ()という指定と同じです。弱学習器の既定設定については、テンプレート オブジェクト作成関数のページを参照してください。

  • 弱学習器テンプレートオブジェクト-菲特森布尔は,テンプレートオブジェクト作成関数が作成した弱学習器を使用します。テンプレート オブジェクト作成関数の名前と値のペアの引数を使用して,弱学習器の設定を指定します。

  • m個の弱学習器テンプレートオブジェクトによる细胞ベクトル-菲特森布尔は,各学習サイクルでm個の学習器を成長させます(NumLearningCyclesを参照)。たとえば,2种类の分类木から构成されるアンサンブルの场合,{t1 t2}を指定します。t1t2は,模板树によって返される分類木テンプレートオブジェクトです。

“方法”“子空间”である場合,“学习者”の既定値は“资讯”です。

“方法”“包”またはいずれかのブースティング法である場合,“学习者”の既定値は“树”です。templateTree ()の既定値は,“方法”の値に応じて変化します。

  • バギングされた決定木の場合,決定分岐の最大数(“MaxNumSplits”)はn - 1です。nは観測値の個数です。各分岐で無作為に選択する予測子の個数 (“NumVariablesToSample”) は、予測子の個数の平方根です。したがって、菲特森布尔は深い決定木を成長させます。モデルの複雑さや計算時間の削減のために,より浅い木を成長させることもできます。

  • ブースティングされた決定木の場合,“MaxNumSplits”は10,“NumVariablesToSample”“所有”です。したがって,菲特森布尔は浅い决定木を成长させます。木を深くすると,精度を向上させることができます。

弱学習器の既定設定については、模板树を参照してください。再現性がある結果を取得するには,“NumVariablesToSample”“所有”でない場合,模板树の名前と値のペアの引数“复制”真的として指定しなければなりません。

学習器の学習回数の詳細については、NumLearningCyclesヒントを参照してください。

例:“学习者”,templateTree (MaxNumSplits, 5)

出力頻度。“NPrint”と正の整数または“关”から構成されるコンマ区切りのペアとして指定します。

それまでに菲特森布尔が "弱学習器"または”分割”に学習をさせた回数を追跡するには,正の整数を指定します。つまり,正の整数米を指定した場合、次のようになります。

  • 交差検証オプション(CrossValなど) を指定していない場合、菲特森布尔でm個の弱学習器の学習が完了するたびに,コマンドラインにメッセージが表示されます。

  • 交差検証オプションを指定した場合,菲特森布尔で M個の分割の学習が完了するたびに、コマンド ラインにメッセージが表示されます。

“关”を指定した場合、菲特森布尔で弱学習器の学習が完了してもメッセージは表示されません。

ヒント

一部のブースティングされた決定木の学習を最速にするには,NPrintを既定値の“关”に设定します。このヒントは,分类の方法'AdaBoostM1''AdaBoostM2'“GentleBoost”,または“LogitBoost”であるか,回帰の方法'LSBoost'である場合に有効です。

例:“NPrint”,5

データ型:||烧焦|字符串

数値予測子のビンの個数。“麻木”と正の整数スカラーから構成されるコンマ区切りのペアとして指定します。この引数は、菲特森布尔が木学習器を使用する場合,つまり,“学习者”“树”であるか,模板树を使用して作成したテンプレートオブジェクトである場合のみ有効です。

  • “麻木”の値が空 (既定) である場合、菲特森布尔はどの予測子もビン化しません。

  • “麻木”の値として正の整数スカラー(numBins)を指定した场合,菲特森布尔は最大numBins個の同確率のビンにすべての数値予測子をビン化し,元のデータではなくビンのインデックスに対して木が成長します。

    • 予測子に含まれる一意の値がnumBinsより少なければ,ビンの数をnumBinsより少なくすることができます。

    • 菲特森布尔は、カテゴリカル予測子をビン化しません。

大規模な学習データセットを使用する場合、このビン化オプションを使用すると学習を高速化できますが、精度が低下する可能性があります。はじめに“NumBins”,50岁を試してから,精度と学習速度に応じて値を変更できます。

学習済みのモデルでは,ビンのエッジは边沿プロパティに格納されます。

例:“NumBins”,50岁

データ型:|

カテゴリカル予測子のリスト。次の表のいずれかの値として指定します。

説明
正の整数のベクトル

ベクトルの各エントリは,カテゴリカル変数が含まれている予測子データの列に対応するインデックス値です。インデックス値の範囲は1 ~pです。pはモデルの学習に使用した予測子の数です。

菲特森布尔が入力変数のサブセットを予測子として使用する場合,関数はサブセットのみを使用して予測子にインデックスを作成します。応答変数,観測値の重み変数,および関数で使用されないその他の変数は,“CategoricalPredictors”値でカウントされません。

逻辑ベクトル

真的というエントリは,予測子データの対応する列がカテゴリカル変数であることを意味します。ベクトルの長さはpです。

文字行列 行列の各行は予測子変数の名前です。名前はPredictorNamesのエントリに一致しなくてはなりません。文字行列の各行が同じ長さになるように、名前を余分な空白で埋めてください。
文字ベクトルの细胞配列または字符串配列 配列の各要素は予測子変数の名前です。名前はPredictorNamesのエントリに一致しなくてはなりません。
“所有” すべての予測子がカテゴリカルです。

“CategoricalPredictors”の仕様は以下の場合適切です。

  • “学习者”は木学習器を指定します。

  • “学习者”は,すべての予測子がカテゴリカルであるk最近傍学習器を指定します。

各学習器は,学習器に対応する近似関数と同じ方法でカテゴリカル予測子を特定して処理します。k最近傍学習器については菲茨康“CategoricalPredictors”を、木学習器についてはfitctree“CategoricalPredictors”を参照してください。

例:“CategoricalPredictors”、“所有”

データ型:||逻辑|烧焦|字符串|细胞

予測子変数名。一意な名前の字符串配列または一意な文字ベクトルの细胞配列として指定します。PredictorNamesの機能は,学習データの提供方法によって決まります。

  • XYを指定した場合、PredictorNamesを使用してX内の予測子変数に名前を割り当てることができます。

    • PredictorNames内の名前の順序は、Xの列の順序に一致しなければなりません。つまり,PredictorNames {1}X(:,1)の名前,PredictorNames {2}X(:,2)の名前であり、他も同様です。また、大小(X, 2)numel(PredictorNames)は等しくなければなりません。

    • 既定ではPredictorNames{'x1','x2',…}です。

  • Tblを指定する場合、PredictorNamesを使用して学習に使用する予測子変数を選択できます。つまり,菲特森布尔は、学習中にPredictorNamesの予測子変数と応答変数のみを使用します。

    • PredictorNamesTbl.Properties.VariableNamesのサブセットでなければならず,応答変数の名前を含めることはできません。

    • 既定では,すべての予測子変数の名前がPredictorNamesに格納されます。

    • “PredictorNames”公式の両方ではなく、いずれか一方を使用して学習用の予測子を指定することをお勧めします。

例:PredictorNames,{‘SepalLength’,‘SepalWidth’,‘PetalLength’,‘PetalWidth}

データ型:字符串|细胞

応答変数名。文字ベクトルまたは字符串スカラーとして指定します。

  • Yを指定した場合、“ResponseName”を使用して応答変数の名前を指定できます。

  • ResponseVarNameまたは公式を指定した場合、“ResponseName”を使用することはできません。

例:“ResponseName”、“响应”

データ型:烧焦|字符串

並列オプション

すべて折りたたむ

並列計算と乱数設定のオプション。構造体として指定します。statsetを使用して选择权構造体を作成します。

メモ

並列計算を行うには、并行计算工具箱™ が必要です。

次の表は,オプションのフィールドとその値の一覧です。

フィールド名 既定の設定
UseParallel

並列計算する場合は、この値を真的に設定します。並列アンサンブル学習では,名前と値の引数“方法”“包”に設定する必要があります。並列学習は“包”の既定のタイプである木学習器にのみ使用できます。

UseSubstreams

再生可能な方法で並列計算する場合は,この値を真的に設定します。

再现性のある计算を行うには,をサブストリームを許可する型(“mlfg6331_64”または“mrg32k3a”)に設定します。また,名前と値の引数“复制”真的に設定された木テンプレートを使用します。並列統計計算での再現性を参照してください。

RandStreamオブジェクトまたはそのようなオブジェクトの 细胞配列としてこの値を指定します。UseParallelの値が真的でなく,UseSubstreamsの値もでない場合,単一オブジェクトを使用します。この場合は,並列プールと同じサイズの细胞配列を使用します。 を指定しなかった場合,菲特森布尔は既定のストリームを使用します。

再現性のある並列学習の使用例については,アンサンブル分類の並列学習を参照してください。

デュアルコア以上のシステムの場合,菲特森布尔では英特尔®スレッディング ビルディング ブロック (待定)を使用して学習を並列化します。したがって、UseParallelオプションを真的と指定しても,単一のコンピューターではそれほど大きな高速化の效果は得られないことがあります。英特尔TBBについての详细は,https://software.intel.com/en-us/intel-tbbを参照してください。

例:“选项”,statset (UseParallel,真的)

データ型:结构体

交差検証オプション

すべて折りたたむ

交差検証フラグ。“Crossval”“上”または“关”から構成されるコンマ区切りのペアとして指定します。

“上”を指定した場合10分割の交差検証が実施されます。

この交差検証の設定をオーバーライドするには,名前と値のペアの引数CVPartition坚持肯福尔德忽略のいずれかを使用します。交差検証済みモデルを作成するために使用できる交差検証の名前と値のペアの引数は、一度に 1.つだけです。

あるいは,crossvalまたはcrossvalMdlを渡すことにより,後で交差検証を実行します。

例:“Crossval”,“上”

交差検証分割。cvpartitionで作成したcvpartition分割オブジェクトとして指定します。分割オブジェクトは,交差検証のタイプと、学習セットおよび検証セットのインデックス付けを指定します。

交差検証済みモデルの作成で指定できる名前と値の引数は,CVPartition坚持肯福尔德忽略の4つのうちのいずれかのみです。

例:本量利= cvpartition(500年,“KFold”,5)500年を使用して個の観測値に対する5分割交差検証について無作為な分割を作成するとします。この場合,“CVPartition”,本量利を使用して交差検証済みモデルを指定できます。

ホールドアウト検証に使用されるデータの比率。(0,1)の範囲のスカラー値として指定します。‘坚持’,pを指定した場合、以下の手順が実行されます。

  1. p * 100%のデータを無作為に選択して検証データとして確保し,残りのデータを使用してモデルに学習をさせる。

  2. コンパクトな学習済みモデルを交差検証済みモデルの训练プロパティに格納する。

交差検証済みモデルの作成で指定できる名前と値の引数は,CVPartition坚持肯福尔德忽略の4つのうちのいずれかのみです。

例:“坚持”,0.1

データ型:|

交差検証済みモデルで使用する分割の数。1より大きい正の整数値として指定します。KFold, kを指定した場合、以下の手順が実行されます。

  1. データを無作為にk個のセットに分割する。

  2. 各セットについて,そのセットを検定データとして确保し,他のk- 1個のセットを使用してモデルに学習をさせる。

  3. k個のコンパクトな学習済みモデルを,交差検証済みモデルの训练プロパティに含まれているk行 1列の 细胞ベクトルに格納する。

交差検証済みモデルの作成で指定できる名前と値の引数は,CVPartition坚持肯福尔德忽略の4つのうちのいずれかのみです。

例:“KFold”,5

データ型:|

分析法の交差検証のフラグ。“上”または“关”として指定します。“Leaveout”,“上”を指定した場合,n個の観測値(nはモデルのNumObservationsプロパティで指定される,欠損観測値を除外した観測値の個数)のそれぞれについて以下の手順が実行されます。

  1. いずれかの観測値を検証データとして確保し、他の n-1個の観測値を使用してモデルに学習をさせる。

  2. n個のコンパクトな学習済みモデルを,交差検証済みモデルの训练プロパティに含まれている N行 1.列の 细胞ベクトルに格納する。

交差検証済みモデルの作成で指定できる名前と値の引数は,CVPartition坚持肯福尔德忽略の4つのうちのいずれかのみです。

例:“Leaveout”,“上”

その他の分類オプション

すべて折りたたむ

学習に使用するクラスの名前。分类配列、文字配列、string 配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列として指定します。一会のデータ型はTbl内の応答変数またはYと同じでなければなりません。

一会が文字配列の場合,各要素は配列の1つの行に対応しなければなりません。

一会の使用目的は次のとおりです。

  • 学習時のクラスの順序を指定する。

  • クラスの順序に対応する入力または出力引数の次元の順序を指定する。たとえば,成本の次元の顺序や预测によって返される分類スコアの列の順序を指定するために一会を使用します。

  • 学习用にクラスのサブセットを选択する。たとえば,Yに含まれているすべての異なるクラス名の集合が{ 'A', 'B', 'C'}であるとします。クラス“一个”および“c”のみの観測値を使用してモデルに学習をさせるには,'ClassNames',{'a','c'}を指定します。

一会の既定値は,Tbl内の応答変数またはYに含まれているすべての異なるクラス名の集合です。

例:“类名”,{' b ', ' g '}

データ型:分类|烧焦|字符串|逻辑|||细胞

誤分類のコスト。“成本”と正方行列または構造体から構成されるコンマ区切りペアとして指定します。指定する項目によって、内容は次のように変わります。

  • 正方行列成本の場合,成本(I,J)は真のクラスがである点をクラスjに分類するコストです。つまり,行は真のクラスに、列は予測するクラスに対応します。成本の対応する行と列についてクラスの順序を指定するには,名前と値のペアの引数一会も指定します。

  • 構造体年代の場合、次の 2つのフィールドが必要となります。

    • S.ClassNamesYと同じデータ型のクラス名を表す変数を含む。

    • S.ClassificationCosts。行と列の順序がS.ClassNamesと同じコスト行列。

既定値は(K)-眼睛(Kです。Kは異なるクラスの数です。

メモ

菲特森布尔成本を使用して,先前的で指定されたクラスの事前确率を调整します。その后,菲特森布尔は調整した事前確率を学習に使用し,コスト行列を既定設定にリセットします。

例:'Cost',[0 1 2;1 0 2;2 2 0)

データ型:||结构体

各クラスの事前確率。“先前的”と次の表の値から構成されるコンマ区切りのペアとして指定します。

説明
“经验” クラスの事前確率は,Yのクラスの相対的頻度です。
“制服” クラスの事前確率はいずれも1 / K (Kはクラス数)となります。
数値ベクトル 各要素はクラスの事前确率です。Mdl。一会に従って要素を並べ替えるか,一会名前と値のペアの引数を使用して順序を指定します。要素は合計が1になるように正規化されます。
構造体配列

構造体年代には2つのフィールドがあります。

  • S.ClassNamesYと同じ型の変数のクラス名が格纳されます。

  • S.ClassProbs:対応する事前確率のベクトルが格納されます。要素は合計が1になるように正規化されます。

菲特森布尔は,合计が1になるように先前的の事前確率を正規化します。

例:结构(“类名”,{{setosa,杂色的,‘virginica}}, ClassProbs, 1:3)

データ型:烧焦|字符串|||结构体

スコア変換。文字ベクトル,弦スカラー,または関数ハンドルとして指定します。

次の表は、使用可能な文字ベクトルおよび 串スカラーをまとめています。

説明
“doublelogit” 1 / (1 + e2 x
“因弗罗吉特” 日志(X /(1 - X))
“ismax” 最大のスコアをもつクラスのスコアを 1に設定し、他のすべてのクラスのスコアを 0に設定する
分对数的 1 / (1 + e–x
“没有”または“身份” x(変換なし)
“标志” x < 0のとき1
x = 0时のとき0
x > 0のとき1
“对称” 2x–1
“symmetricismax” 最大のスコアをもつクラスのスコアを1に設定し,他のすべてのクラスのスコアを1に設定する
“symmetriclogit” 2 / (1 + e–x) - 1

MATLAB关数またはユーザー定义关数の场合は,スコア変换用の关数ハンドルを使用します。关数ハンドルは,行列(元のスコア)を受け入れて同じサイズの行列(変换したスコア)を返さなければなりません。

例:'ScoreTransform', '分对数'

データ型:烧焦|字符串|function_handle

観測値の重み。“权重”と,正の値の数値ベクトルまたはTbl内の変数の名前から構成されるコンマ区切りのペアとして指定します。XまたはTblの各行に含まれている観測値は,权重の対応する値で重み付けされます。权重のサイズは,XまたはTblの行数と等しくなければなりません。

入力データをテーブルTblとして指定した場合,权重は数値ベクトルが含まれているTbl内の変数の名前にすることができます。この場合,权重には文字ベクトルまたは字符串スカラーを指定しなければなりません。たとえば,重みベクトルW资源描述。Wとして格納されている場合,' W 'として指定します。それ以外の場合,モデルに学習をさせるときに,Tblの列はWを含めてすべて予測子または応答として扱われます。

合计が各クラスの事前确率の値と等しくなるように权重が正規化されます。

既定の設定では,权重(n, 1)です。nXまたはTblの観測値数です。

データ型:||烧焦|字符串

ブースティング法およびバギングのサンプリングオプション

すべて折りたたむ

すべての弱学習器についてリサンプリングされる学習セットの比率。“FResample”と (0,1] の正のスカラーから構成されるコンマ区切りのペアとして指定します。

“FResample”を使用するには,方法“包”を指定するか,重新取样“上”に設定します。

例:“FResample”,0.75

データ型:|

复元抽出を示すフラグ。“替换”“关”または“上”から構成されるコンマ区切りのペアとして指定します。

  • “上”の场合,学习観测値が复元抽出されます。

  • “关”の場合、学習観測値が非復元抽出されます。重新取样“上”に設定した場合、重みが均一であるという前提で学習観測値がサンプリングされます。ブースティング法も指定した場合、観測値が再重み付けされてブースティングが行われます。

方法“包”に設定した場合と重新取样“上”に設定した場合を除いて,取代の効果はありません。

例:“替换”、“关闭”

リサンプリングを示すフラグ。重新取样的“关”または“上”から構成されるコンマ区切りのペアとして指定します。

  • 方法がブースティング法である場合,次のようになります。

    • 重新取样,“は、更新された重みを多項サンプリング確率として使用することにより学習観測値をサンプリングするよう指定します。

    • “重新取样”,“关闭”(既定)はすべての学習反復で観測値を再重み付けするよう指定します。

  • 方法“包”の場合,重新取样的“上”でなければなりません。一定の比率(FResampleを参照)の学習観測値が復元抽出または非復元抽出(取代を参照) でリサンプリングされます。

重新取样を使用してリサンプリングを指定する場合は、データセット全体に対してのリサンプリングをお勧めします。つまり、FResampleの既定設定である1を使用します。

AdaBoostM1、AdaBoostM2 LogitBoostおよびGentleBoost法のオプション

すべて折りたたむ

縮小学習率。“LearnRate”と区間(0,1)の数値スカラーから構成されるコンマ区切りのペアとして指定します。

縮小を使用してアンサンブルに学習をさせるには、LearnRate1未満の値(一般的な0.1など)に設定します。縮小を使用してアンサンブルに学習をさせると,学習反復数を増やす必要がありますが,多くの場合精度が向上します。

例:“LearnRate”,0.1

データ型:|

RUSBoost法のオプション

すべて折りたたむ

縮小学習率。“LearnRate”と区間(0,1)の数値スカラーから構成されるコンマ区切りのペアとして指定します。

縮小を使用してアンサンブルに学習をさせるには、LearnRate1未満の値(一般的な0.1など)に設定します。縮小を使用してアンサンブルに学習をさせると,学習反復数を増やす必要がありますが,多くの場合精度が向上します。

例:“LearnRate”,0.1

データ型:|

最小相当クラスについてのサンプリング比率。“比率最小”と数値スカラー,または学習データ内の異なるクラス数と同じ長さをもつ正の値の数値ベクトルから構成されるコンマ区切りのペアとして指定します。

学習データにK個のクラスがあり、最小相当クラスには個の観測値があるとします。

  • 正の数値スカラー年代を指定した場合、菲特森布尔年代个の観测値を各クラスから抽出します。つまり,各クラスでサンプリングの比率が同じになります详细。は,アルゴリズムを参照してください。

  • 数値ベクトルs1s2,...,sKを指定した場合、菲特森布尔如果个の観测値をクラス=1,…,K)から抽出します。RatioToSmallestの要素は,一会を使用して指定されるクラス名に同じ順序で対応します(ヒントを参照)。

既定値は(K, 1)で,個の観測値を各クラスから抽出するよう指定します。

例:‘RatioToSmallest’,(2,1)

データ型:|

LPBoostおよびTotalBoost法のオプション

すべて折りたたむ

収束速度を制御するマージン精度。'MarginPrecision'と区間[0,1]の数値スカラーから構成されるコンマ区切りのペアとして指定します。MarginPrecisionは,収束に必要なブースティング反復回数に影響を与えます。

ヒント

多数の学習器を使用してアンサンブルに学習をさせるには,MarginPrecisionに小さい値を指定します。少数の学习器を使用して学习をさせる场合は,大きい値を指定します。

例:“MarginPrecision”,0.5

データ型:|

RobustBoost法のオプション

すべて折りたたむ

目標分類誤差。“RobustErrorGoal”と非負の数値スカラーから構成されるコンマ区切りのペアとして指定します。可能な値の上限は,RobustMarginSigmaおよびRobustMaxMarginの値によって決まります。ただし,上限が1を超えることはできません。

ヒント

通常は,特定の学习セットについてRobustErrorGoalの最适な范囲が存在します。小さすぎる値または大きすぎる値を设定した场合,分类精度が低いモデルが生成される可能性があります。适切な値を求めるには,交差検证を试してください。

例:“RobustErrorGoal”,0.05

データ型:|

学習データに対する分類マージンの分布の広がり。“RobustMarginSigma”と正の数値スカラーから構成されるコンマ区切りのペアとして指定します。RobustMarginSigmaを指定する前に,RobustBoostに関する文献([19]など)を調べてください。

例:“RobustMarginSigma”,0.5

データ型:|

学習データの最大分類マージン。“RobustMaxMargin”と非負の数値スカラーから構成されるコンマ区切りのペアとして指定します。分類マージンがRobustMaxMargin未満になるように学習データ内の観測値数が最小化されます。

例:“RobustMaxMargin”,1

データ型:|

ランダム部分空間法のオプション

すべて折りたたむ

各ランダム部分空間学習器についてサンプリングする予測子の個数。“NPredToSample”と区间1,...,Pの正の整数から构成されるコンマ区切りのペアとして指定します.Pは予测子変数の个数(大小(X, 2)または大小(TBL,2))です。

データ型:|

ハイパーパラメーター最適化オプション

すべて折りたたむ

最適化するパラメーター。'OptimizeHyperparameters'と次のいずれかから構成されるコンマ区切りのペアとして指定します。

  • “没有”— 最適化を行いません。

  • “汽车”——指定された学习者の既定パラメーターと共に{‘法’,‘NumLearningCycles’,‘LearnRate}を使用します。

    • 学习者“树”(既定){'MinLeafSize'}

    • 学习者“判别”- - - - - -{“三角洲”,“伽马”}

    • 学习者“资讯”- - - - - -{‘距离’,‘NumNeighbors}

    メモ

    ハイパーパラメーターの最适化の场合,学习者は字符串配列や细胞配列ではなく単一の引数でなければなりません。

  • “所有”——すべての使用可能パラメーターを最適化します。

  • 使用可能パラメーター名の 串配列または 细胞配列

  • optimizableVariableオブジェクトのベクトル。通常はhyperparametersの出力です。

最適化では,パラメーターを変化させることにより,菲特森布尔の交差検証損失(誤差)を最小化しようとします。(各種の状況における)交差検証損失の詳細については,分類損失を参照してください。交差検证のタイプおよびその他の最适化の侧面を制御するには,名前と値のペアHyperparameterOptimizationOptionsを使用します。

メモ

'OptimizeHyperparameters'の値は、他の名前と値のペアの引数を使用して設定した値より優先されます。たとえば、'OptimizeHyperparameters'“汽车”に設定すると,“汽车”の値が適用されます。

菲特森布尔では,以下のパラメーターを使用できます。

  • 方法——クラスの個数によって異なります。

    • 2つのクラス——使用可能な方式は“包”“GentleBoost”“LogitBoost”'AdaBoostM1'および“俄罗斯助推”です。

    • 3.つ以上のクラス — 使用可能な方式は“包”'AdaBoostM2'および“俄罗斯助推”です。

  • NumLearningCycles- - - - - -菲特森布尔は、既定では範囲[10500]の対数スケールで,正の整数を探索します。

  • LearnRate- - - - - -菲特森布尔は、既定では範囲(1 e - 3, 1)の対数スケールで,正の実数を探索します。

  • 選択した学习者について,次のハイパーパラメーターを使用できます。

    学習器 使用可能ハイパーパラメーター
    (太字は既定で使用)
    既定の範囲
    “判别” δ 範囲(1 e-6, 1 e3)の対数スケール
    歧视型 “线性”“二次”“diagLinear”“diagQuadratic”“pseudoLinear”および“pseudoQuadratic”
    伽马射线 [0, 1]の実数値
    “资讯” 距离 “城市街区”“chebychev”“相关”的余弦“欧几里德”“汉明”“jaccard”“马哈拉诺比斯”闵可夫斯基的“seuclidean”および“斯皮尔曼”
    距离重量 “平等”“逆”および“squaredinverse”
    指数 (0.5, 3)の正の値
    NumNeighbors 範囲[1,马克斯(2轮(NumObservations / 2)))の対数スケールの正の整数値
    标准化 “真的”および“假”
    “树” MaxNumSplits 範囲[1,max(2,numobervations-1)]の対数スケールの整数
    MinLeafSize 範囲[1,马克斯(2楼(NumObservations / 2)))の対数スケールの整数
    NumVariablesToSample 範囲NumPredictors[1,马克斯(2))の整数
    SplitCriterion gdi的“越轨”および“两个”

    または、選択した学习者と共にhyperparametersを使用します。optimizableVariableオブジェクトを作成するときに予測子データと応答を指定しなければならないことに注意してください。

    加载fisheririsPARAMS =超参数(“fitcensemble”量,物种,“树”);

    使用可能な,または既定のハイパーパラメーターを調べるには,参数个数を確認します。

既定以外のパラメーターを設定するには,既定以外の値が含まれているoptimizableVariableオブジェクトのベクトルを渡します。たとえば,以下のようにします。

加载fisheririsPARAMS =超参数(“fitcensemble”量,物种,“树”);PARAMS(4).Range = [1,30];

OptimizeHyperparametersの値として参数个数を渡します。

既定では,コマンドラインに反復表示が表示され,最適化のハイパーパラメーターの個数に従ってプロットが表示されます。最適化とプロットにおける目的関数は,回帰の場合はLog(1 +交叉验证损失),分類の場合は誤分類率です。反復表示を制御するには,名前と値のペアの引数“HyperparameterOptimizationOptions”详细的フィールドを设定します。プロットを制御するには,名前と値のペアの引数“HyperparameterOptimizationOptions”ShowPlotsフィールドを设定します。

たとえば,アンサンブル分類の最適化を参照してください。

例:'OptimizeHyperparameters',{ '方法', 'NumLearningCycles', 'LearnRate', 'MinLeafSize', 'MaxNumSplits'}

最适化のオプション。“HyperparameterOptimizationOptions”と構造体から構成されるコンマ区切りのペアとして指定します。この引数を指定すると,名前と値のペアの引数OptimizeHyperparametersの効果が変化します。この構造体のフィールドは、すべてオプションです。

フィールド名 既定の設定
优化器
  • “bayesopt”——ベイズ最適化を使用。内部的にはbayesoptが呼び出されます。

  • “gridsearch”——次元ごとにNumGridDivisionsの値があるグリッド探索を使用。

  • “randomsearch”- - - - - -MaxObjectiveEvaluations個の点で無作為に探索。

“gridsearch”では,グリッドからの一様な非復元抽出により,無作為な順序で探索します。最適化後、sortrows (Mdl.HyperparameterOptimizationResults)コマンドを使用してグリッド順のテーブルを取得できます。

“bayesopt”
AcquisitionFunctionName

  • “expected-improvement-per-second-plus”

  • “expected-improvement”

  • “预期改善加成”

  • “expected-improvement-per-second”

  • “lower-confidence-bound”

  • “probability-of-improvement”

オブジェクト关数のランタイムによって最适化が异なるので,名前に每秒が含まれている獲得関数は,再現性がある結果を生成しません。名前に+が含まれている獲得関数は、領域を過剰利用している場合に動作を変更します。詳細は、獲得関数のタイプを参照してください。

“expected-improvement-per-second-plus”
MaxObjectiveEvaluations 目的関数評価の最大的数。 “bayesopt”または“randomsearch”の場合は30“gridsearch”の场合はグリッド全体
MaxTime

制限时间。正の実数を指定します。制限时间の単位は,抽搐tocによって測定される秒です。MaxTimeは关数评価を中断させないため,実行时间がMaxTimeを超える可能性があります。

NumGridDivisions “gridsearch”における各次元の値の個数。値は、各次元の値の個数を表す正の整数のベクトル、またはすべての次元に適用されるスカラーが可能です。カテゴリカル変数の場合、このフィールドは無視されます。 10
ShowPlots プロットを表示するかどうかを示す論理値。真的の场合,最良の目的关数の値が反复回数に対してプロットされます0.1つまたは2つの最适化パラメーターがあり,优化器“bayesopt”である場合,ShowPlotsはパラメーターに対する目的関数のモデルのプロットも行います。 真的
SaveIntermediateResults 优化器“bayesopt”である場合に結果を保存するかどうかを示す論理値。真的の場合,“BayesoptResults”という名前のワークスペース変数が反复ごとに上书きされます。この変数はBayesianOptimizationオブジェクトです。
详细的

コマンドラインへの表示。

  • 0——反復表示なし

  • 1——反復表示あり

  • 2- 追加情报付きで反复表示あり

詳細については,bayesoptの名前と値のペアの引数详细的を参照してください。

1
UseParallel ベイズ最適化を並列実行するかどうかを示す論理値。並列実行には并行计算工具箱が必要です。並列でのタイミングに再現性がないため,並列ベイズ最適化で再現性のある結果が生成されるとは限りません。詳細については,並列ベイズ最適化を参照してください。
再分配

反復ごとに交差検証を再分割するかどうかを示す論理値。の場合,オプティマイザーは単一の分割を最適化に使用します。

分割ノイズが考虑されるので,通常は真的にすると最も確実な結果が得られます。ただし,真的で良好な結果を得るには、2倍以上の関数評価が必要になります。

以下の3つのフィールド名は1つだけ使用できます。
CVPartition cvpartitionによって作成されるcvpartitionオブジェクト。 交差検証フィールドが指定されていない場合“Kfold”,5
坚持 ホールドアウトの比率を表す范囲(0,1)のスカラー。
Kfold 1より大きい整数。

例:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)

データ型:结构体

出力引数

すべて折りたたむ

学習済みのアンサンブル モデル。次の表のモデル オブジェクトのいずれかとして返されます。

モデルオブジェクト 交差検証オプションの指定 方法の設定 重新取样の設定
ClassificationBaggedEnsemble なし “包” “上”
ClassificationEnsemble なし 分類用のアンサンブル集約法 “关”
分类分区集合 あり 分類用のアンサンブル集約法 “关”または“上”

交差検証を制御する名前と値のペアの引数はCrossVal坚持肯福尔德忽略およびCVPartitionです。

Mdlのプロパティを参照するには,ドット表记を使用します。たとえば,交差検证されていないアンサンブルについて弱学习器モデルオブジェクトの细胞ベクトルのアクセスまたは表示を行うには,コマンドラインでMdl。训练を入力します。

ヒント

  • NumLearningCyclesは数十から数千までさまざまな数になります。通常,予測力が高いアンサンブルでは数百から数千の弱学習器が必要です。しかし,このような多数のサイクルの学習をアンサンブルが一度に行う必要はありません。数十個の学習器の学習から開始してアンサンブルの性能を調査し,必要な場合は分類問題用の的简历を使用して弱学習器の数を増やすことができます。

  • アンサンブルの性能は,アンサンブルの設定と弱学習器の設定によって決まります。つまり,既定のパラメーターを使用する弱学習器を指定すると、アンサンブルの性能が低下する可能性があります。このため、アンサンブルの設定と同じように、テンプレートを使用して弱学習器のパラメーターを調整し、汎化誤差が最小になる値を選択することをお勧めします。

  • 重新取样を使用してリサンプリングを指定する場合は、データセット全体に対してのリサンプリングをお勧めします。つまり、FResampleの既定设定である1を使用します。

  • アンサンブル集約法(方法)が“包”であり,

    • 誤分類コスト (成本)が非常に不均衡である場合,在袋子の標本について,ペナルティが大きいクラスから一意な観測値がオーバーサンプリングされます。

    • クラスの事前確率(先前的)の歪みが大きい场合,事前确率が大きいクラスから一意な観测値がオーバーサンプリングされます。

    これらの組み合わせにより,標本サイズが小さい場合,ペナルティまたは事前確率が大きいクラスから抽出されるout-of-bag観測値の相対頻度が低くなる可能性があります。この結果,out-of-bagの推定誤差の変動幅が非常に大きくなり,解釈が困難になる可能性があります。特に標本サイズが小さい場合に,out-of-bagの推定誤差の変動幅が大きくならないようにするには,成本を使用して誤分類コスト行列をより平衡にするか,先前的を使用して事前確率ベクトルの歪みを小さくします。

  • 一部の入力引数および出力引数の順序は学習データ内の各クラスに対応するので,名前と値のペアの引数一会を使用してクラスの順序を指定することをお勧めします。

    • クラスの順序を簡単に求めるには、未分類の (つまり欠損ラベルがある) 観測値を学習データからすべて削除し、異なるクラスがすべて含まれている配列を取得および表示してから、その配列を一会に指定します。たとえば,応答変数 (Y)がラベルの细胞配列であるとします。次のコードは,変数类名でクラスの順序を指定します。

      Ycat =分类(Y);一会=类别(Ycat)
      分类<定义>を未分類観測値に割り当て、类别<定义>を出力から除外します。したがって,このコードをラベルの cell 配列に対して使用するか、同様のコードを categorical 配列に対して使用すると、欠損ラベルがある観測値を削除しなくても各クラスのリストを取得できます。

    • 最小相当ラベルから最大相当ラベルの順になるようにクラスの順序を指定するには,(前の項目のように)クラスの順序を簡単に調べ,リスト内のクラスの順序を頻度順に変更してから,リストを一会に渡します。前の例に従うと、次のコードは最小相当から最大相当の順にクラスの順序をclassNamesLHで指定します。

      Ycat=categorical(Y);classNames=categories(Ycat);freq=countcats(Ycat);[~,idx]=sort(freq);classNamesLH=classNames(idx);

  • モデルに学習をさせた後で、新しいデータについてラベルを予測する C/C++コードを生成できます。C/C++コードの生成にはMATLAB编码器™が必要です。詳細については,コード生成の紹介を参照してください。

アルゴリズム

  • アンサンブル集約アルゴリズムの詳細については,アンサンブルアルゴリズムを参照してください。

  • 方法がブースティングアルゴリズム,学习者が决定木になるように设定した场合,既定では浅い决定木が成长します。木の深さは,模板树を使用して名前と値のペアの引数MaxNumSplitsMinLeafSizeおよびMinParentSizeを指定することにより调整できます。

  • バギング(“方法”,“包”)の场合,菲特森布尔は、誤分類コストが大きいクラスをオーバーサンプリングし、誤分類コストが小さいクラスをアンダーサンプリングすることにより、袋装の標本を生成します。その結果、现成的の標本では、誤分類コストが大きいクラスの観測値は少なくなり、誤分類コストが小さいクラスの観測値は多くなります。小さいデータセットと歪みが大きいコスト行列を使用してアンサンブル分類に学習をさせる場合、クラスあたりの 现成的観測値の数が少なくなる可能性があります。このため、现成的の推定誤差の変動幅が非常に大きくなり、解釈が困難になる可能性があります。事前確率が大きいクラスでも同じ現象が発生する場合があります。

  • アンサンブル集約法(“方法”、“RUSBoost”)がRUSBoostである場合,名前と値のペアの引数RatioToSmallestでは最小相当クラスに関して各クラスのサンプリングの比率を指定します。たとえば,学習データにA および B という 2 つのクラスがあるとします。A には 100 個の観測値、B には 10 個の観測値が含まれています。また、最小相当クラスでは個の観測値が学習データに含まれているとします。

    • “比率最小”,2を設定した場合,年代2 * 1020になります。したがって,菲特森布尔はクラスの一个20个の観测値とクラスの乙20个の観测値を使用して,すべての学习器に学习をさせます。‘比率最小’,[2]を設定した場合も同じ結果になります。

    • ‘RatioToSmallest’,(2,1)を設定した場合,s12 * 1020およびs21 * 1010になります。したがって,菲特森布尔はクラスの20個の観測値とクラスBの10個の観測値を使用して,すべての学習器に学習をさせます。

  • デュアルコア以上のシステムの場合,菲特森布尔では英特尔スレッディングビルディングブロック(TBB)を使用して学習を並列化します。英特尔TBBについての詳細は,https://software.intel.com/en-us/intel-tbbを参照してください。

参照

[1] Breiman, L.《套袋预测》。机器学习。1996年第26卷,123-140页。

[2] Breiman,L.“随机森林”。机器学习。卷。45,第5-32,2001年。

[3] Freund, Y.“一个更健壮的助推算法。“v1 arXiv: 0905.2138, 2009。

[4]弗氏,Y。和R. E. Schapire。“A决策理论在线学习的推广和提升在应用程序。”计算机与系统科学,卷J.。55,第119-139,1997。

[5] Friedman, J. <贪婪函数近似:梯度增压机>《统计年鉴》,第29卷第5期,第1189-1232页,2001年。

[6]弗里德曼,J.,T.黑斯蒂和R. Tibshirani。“添加剂逻辑回归:提升的统计视图。”统计,卷年鉴。28,第2号,第337-407,2000。

[7] 黑斯蒂、T、R.蒂布什拉尼和J.弗里德曼。《统计学习要素》第版,斯普林格,纽约,2008年。

[8]何,T. K.“用于构建决策森林随机子空间方法”。IEEE交易模式分析与机器智能,卷。20,第8期,第832-844,1998。

[9] 夏皮雷,R.E.,Y.Freund,P.Bartlett和W.S.Lee。“扩大差距:投票方法有效性的新解释”,《统计年鉴》,第26卷,第5期,1651-16861998页。

Seiffert, C., T. Khoshgoftaar, J. Hulse和A. Napolitano。RUSBoost:在训练数据有偏差时提高分类性能。“第19届模式识别国际会议”,第1-4页,2008。

[11]温穆特,廖建军,陈志强。“完全正确的助推算法,使利润最大化。”Proc, 23日国际。机器学习大会,ACM,纽约,第1001-1008页,2006。

拡張機能

R2016bで導入