このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
アンサンブル学習器を分類用に準備
は100本の分類木のブースティングの結果および予測子と応答データのテーブルMdl
= fitcensemble (Tbl
,ResponseVarName
)Tbl
が格納されている学習済みアンサンブル分類モデルオブジェクト(Mdl
)を返します。ResponseVarName
は,Tbl
内の応答変数の名前です。既定では,菲特森布尔
はバイナリ分類にLogitBoostを,マルチクラス分類にAdaBoostM2を使用します。
データ内の使用可能な予测子変数をすべて使用して,予测アンサンブル分类を作成します。次に,予测子の数を减らして,别のアンサンブルに学习をさせます。これらのアンサンブルの标本内予测精度を比较します。
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}属性,方法
Mdl
はClassificationEnsemble
モデルです。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,“工资~年龄+教育程度”);
Mdl1
とMDL2
の再代入損失を比較します。
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つの分割)から最大n- 1 個の分割まで木の複雑度レベルを指数的に増やします。nは標本サイズです。また,各アンサンブル学習率0.1をから1までの間で変化させます。
各アンサンブルの交差検証済み誤分類率を推定します。
木の複雑度レベル ( ) について、学習サイクル数に対してプロットすることにより、アンサンブルの交差検証済み累積誤分類率を比較します。同じ 身材に、各学習率に対応する別々の曲線をプロットします。
誤分類率が最小になる曲線を選択し,対応する学習サイクルおよび学習率に注目します。
深い分類木と切り株を交差検証します。これらの分類木は基準として機能します。
rng(1)%的再现性MdlDeep=fitctree(X,Y,'CrossVal',“上”,“合并树叶”,“关”,...“MinParentSize”1);MdlStump = fitctree (X, Y,“MaxNumSplits”,1,'CrossVal',“上”);
5分割の交差検証を使用して,150本のブースティング分類木のアンサンブルを交差検証します。木のテンプレートを使用して, という数列の値を使用して分割の最大数を変化させます。米は, が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: numLR为j = 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}属性,方法
MdlFinal
はClassificationEnsemble
です。与えられた予测子データに対してレーダー反射が良好であるかどうかを予测するには,予测子データと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
- - - - - -標本データモデルを学習させるために使用する標本データ。テーブルとして指定します。Tbl
の各行は 1.つの観測値に、各列は 1.つの予測子変数に対応します。Tbl
には,応答変数用の追加の1列を含めることができます。文字ベクトルの细胞配列ではない细胞配列と复数列の変数は使用できません。
Tbl
に応答変数が含まれている場合に他の変数をすべて予測子として使用するには,ResponseVarName
を使用して応答変数を指定します。
Tbl
に応答変数が含まれている場合に他の変数の一部のみを予測子として使用するには、公式
を使用して式を指定します。
Tbl
に応答変数が含まれていない場合は,Y
を使用して応答データを指定します。応答変数の长さとTbl
の行数は,同じでなければなりません。
メモ
メモリと実行时间を节约するには,Tbl
ではなくX
とY
を指定します。
データ型:表格
ResponseVarName
- - - - - -応答変数名Tbl
内の応答変数の名前応答変数名。Tbl
内の応答変数の名前を指定します。
ResponseVarName
には文字ベクトルまたは字符串スカラーを指定しなければなりません。たとえば,资源描述。Y
が応答変数である场合,ResponseVarName
には“Y”
を指定します。それ以外の場合、菲特森布尔
はTbl
の列をすべて予測子変数として扱います。
応答変数は、绝对的配列、文字配列、串配列、合乎逻辑ベクトル、数値ベクトル、または文字ベクトルの 细胞配列でなければなりません。応答変数が文字配列の場合、各要素は配列の 1つの行に対応しなければなりません。
分類の場合,名前と値のペアの引数一会
を使用してクラスの順序を指定できます。それ以外の場合、菲特森布尔
がクラスの順序を決定してMdl。一会
に格納します。
データ型:烧焦
|字符串
公式
- - - - - -応答変数および予測子変数サブセットの説明モデル応答変数および予測子変数サブセットの説明モデル。“Y ~ x1 + x2 + x3”
という形式の文字ベクトルまたは字符串スカラーを指定します。この形式では,Y
は応答変数を、x1
、x2
およびx3
は予測子変数を表します。
モデルに学習をさせるための予測子としてTbl
内の変数のサブセットを指定するには,式を使用します。式を指定した場合,公式
に現れないTbl
内の変数は使用されません。
式の変数名はTbl
の変数名(Tbl.Properties.VariableNames
)であり,有効なMATLAB®識別子でなければなりません。関数isvarname
を使用してTbl
の変数名を検証できます。変数名が有効でない場合、関数matlab.lang.makeValidName
を使用してそれらを変換できます。
データ型:烧焦
|字符串
X
- - - - - -予測子データ予测子データ。数値行列を指定します。
各行は1つの観測値に,各列は1つの予測子変数に対応します。
Y
の長さとX
の行数は等しくなければなりません。
予測子の名前をX
に表示される順序で指定するには、PredictorNames
名前と値のペアの引数を使用します。
データ型:单
|双
Y
- - - - - -応答データオプションの名称,值
引数のコンマ区切りペアを指定します。的名字
は引数名で,价值
は対応する値です。的名字
は引用符で囲まなければなりません。Name1, Value1,…,的家
のように,複数の名前と値のペアの引数を,任意の順番で指定できます。
'CrossVal', '上', 'LearnRate',0.05
は10分割交差検証を実施し,学習率として0.05
を使用するよう指定します。
メモ
交差検証の名前と値のペアの引数を名前と値のペアの引数'OptimizeHyperparameters'
と同時に使用することはできません。'OptimizeHyperparameters'
の場合の交差検証は,名前と値のペアの引数“HyperparameterOptimizationOptions”
を使用することのみによって変更できます。
方法
- - - - - -アンサンブル集約法“包”
|“子空间”
|'AdaBoostM1'
|'AdaBoostM2'
|“GentleBoost”
|“LogitBoost”
|“LPBoost”
|“RobustBoost”
|“俄罗斯助推”
|“TotalBoost”
アンサンブル集約法。“方法”
と次のいずれかの値から構成されるコンマ区切りのペアとして指定します。
値 | メソッド | 分类问题のサポート | 関連する名前と値のペアの引数 |
---|---|---|---|
“包” |
引导聚合(バギング、ランダム フォレスト[2]など) -“方法” が“包” である場合,菲特森布尔 はバギングを使用し,既定では各分岐で無作為に予測子を選択します。無作為な選択を行わずにバギングを使用するには,“NumVariablesToSample” の値が“所有” であるツリー学習器を使用するか,判別分析学習器を使用します。 |
バイナリおよびマルチクラス | 該当なし |
“子空间” |
ランダム部分空間 | バイナリおよびマルチクラス | NPredToSample |
'AdaBoostM1' |
適応ブースティング | バイナリのみ | LearnRate |
'AdaBoostM2' |
適応ブースティング | マルチクラスのみ | LearnRate |
“GentleBoost” |
ジェントル適応ブースティング | バイナリのみ | LearnRate |
“LogitBoost” |
適応ロジスティック回帰 | バイナリのみ | LearnRate |
“LPBoost” |
線形計画ブースティング——优化工具箱™が必要的 | バイナリおよびマルチクラス | MarginPrecision |
“RobustBoost” |
ロバスト ブースティング — 优化工具箱が必要 | バイナリのみ | RobustErrorGoal ,RobustMarginSigma ,RobustMaxMargin |
“俄罗斯助推” |
ランダムアンダーサンプリングブースティング | バイナリおよびマルチクラス | LearnRate ,RatioToSmallest |
“TotalBoost” |
完全補正ブースティング — 优化工具箱が必要 | バイナリおよびマルチクラス | MarginPrecision |
バギング(“包”
) またはブースティング (“TotalBoost”
、“俄罗斯助推”
、'AdaBoostM1'
、'AdaBoostM2'
、“GentleBoost”
、“LogitBoost”
、“RobustBoost”
または“LPBoost”
)を使用する場合,学習データのサンプリングオプション(FResample
、取代
、重新取样
)を指定できます。
既定値は以下のとおりです。
木学習器のみが“学习者”
に含まれている場合,バイナリ問題では“LogitBoost”
,マルチクラス問題では'AdaBoostM2'
木学習器と判別分析学習器の両方が“学习者”
に含まれている場合,バイナリ問題では'AdaBoostM1'
,マルチクラス問題では'AdaBoostM2'
木学習器が“学习者”
に含まれていない场合,“子空间”
アンサンブル集約アルゴリズムの詳細と例については,アルゴリズム、ヒント、アンサンブルアルゴリズムおよび適用するアンサンブル集約法の選択を参照してください。
例:“方法”,“包”
NumLearningCycles
- - - - - -アンサンブル学習サイクルの数One hundred.
(既定値) |正の整数|“所有预测组合”
アンサンブル学习のサイクル数。“NumLearningCycles”
と正の整数または“所有预测组合”
から構成されるコンマ区切りのペアとして指定します。
正の整数を指定した場合、すべての学習サイクルで、1つの弱学習器が学习者
内のすべてのテンプレートオブジェクトについて学習します。この結果,延べNumLearningCycles * numel(学习者)
個の学習器が学習を行います。
“所有预测组合”
を指定する場合は,方法
を“子空间”
に設定し,学习者
に対して1つの学習器のみを指定します。このように設定すると,予測子が一度にNPredToSample
個抽出され,その可能な組み合わせすべてに対して学習器が学習を行います。この結果,nchoosek
(尺寸(X,2),未指定样本)
個の学習器が学習を行います。
アンサンブルはすべての学習済み学習器を使用して構成され、Mdl。训练
に格納されます。
詳細は,ヒントを参照してください。
例:“NumLearningCycles”,500年
データ型:单
|双
|烧焦
|字符串
学习者
- - - - - -アンサンブルで使用する弱学習器“判别”
|“资讯”
|“树”
|弱学習器テンプレートオブジェクト|弱学習器テンプレートオブジェクトの细胞ベクトルアンサンブルで使用する弱学習器。“学习者”
と弱学習器の名前,弱学習器テンプレートオブジェクト,または弱学習器テンプレートオブジェクトの细胞ベクトルから構成されるコンマ区切りのペアとして指定します。
弱学習器 | 弱学習器の名前 | テンプレート オブジェクト作成関数 | 方法 の設定 |
---|---|---|---|
判別分析 | “判别” |
模板判别式 |
“子空间” を推奨 |
K最近傍 | “资讯” |
模板 |
“子空间” のみ |
决定木 | “树” |
模板树 |
“子空间” を除くすべての手法 |
弱学習器の名前(“判别”
、“资讯”
または“树”
) - - -菲特森布尔
は、テンプレート オブジェクト作成関数が既定の設定で作成した弱学習器を使用します。たとえば、“学习者”,“判别”
という指定は“学习者”,templateDiscriminant ()
という指定と同じです。弱学習器の既定設定については、テンプレート オブジェクト作成関数のページを参照してください。
弱学習器テンプレートオブジェクト-菲特森布尔
は,テンプレートオブジェクト作成関数が作成した弱学習器を使用します。テンプレート オブジェクト作成関数の名前と値のペアの引数を使用して,弱学習器の設定を指定します。
m個の弱学習器テンプレートオブジェクトによる细胞ベクトル-菲特森布尔
は,各学習サイクルでm個の学習器を成長させます(NumLearningCycles
を参照)。たとえば,2种类の分类木から构成されるアンサンブルの场合,{t1 t2}
を指定します。t1
とt2
は,模板树
によって返される分類木テンプレートオブジェクトです。
“方法”
が“子空间”
である場合,“学习者”
の既定値は“资讯”
です。
“方法”
が“包”
またはいずれかのブースティング法である場合,“学习者”
の既定値は“树”
です。templateTree ()
の既定値は,“方法”
の値に応じて変化します。
バギングされた決定木の場合,決定分岐の最大数(“MaxNumSplits”
)はn - 1
です。n
は観測値の個数です。各分岐で無作為に選択する予測子の個数 (“NumVariablesToSample”
) は、予測子の個数の平方根です。したがって、菲特森布尔
は深い決定木を成長させます。モデルの複雑さや計算時間の削減のために,より浅い木を成長させることもできます。
ブースティングされた決定木の場合,“MaxNumSplits”
は10,“NumVariablesToSample”
は“所有”
です。したがって,菲特森布尔
は浅い决定木を成长させます。木を深くすると,精度を向上させることができます。
弱学習器の既定設定については、模板树
を参照してください。再現性がある結果を取得するには,“NumVariablesToSample”
が“所有”
でない場合,模板树
の名前と値のペアの引数“复制”
を真的
として指定しなければなりません。
学習器の学習回数の詳細については、NumLearningCycles
とヒントを参照してください。
例:“学习者”,templateTree (MaxNumSplits, 5)
NPrint
- - - - - -出力頻度“关”
(既定値) |正の整数出力頻度。“NPrint”
と正の整数または“关”
から構成されるコンマ区切りのペアとして指定します。
それまでに菲特森布尔
が "弱学習器"または”分割”に学習をさせた回数を追跡するには,正の整数を指定します。つまり,正の整数米を指定した場合、次のようになります。
交差検証オプション(CrossVal
など) を指定していない場合、菲特森布尔
でm個の弱学習器の学習が完了するたびに,コマンドラインにメッセージが表示されます。
交差検証オプションを指定した場合,菲特森布尔
で M個の分割の学習が完了するたびに、コマンド ラインにメッセージが表示されます。
“关”
を指定した場合、菲特森布尔
で弱学習器の学習が完了してもメッセージは表示されません。
ヒント
一部のブースティングされた決定木の学習を最速にするには,NPrint
を既定値の“关”
に设定します。このヒントは,分类の方法
が'AdaBoostM1'
、'AdaBoostM2'
、“GentleBoost”
,または“LogitBoost”
であるか,回帰の方法
が'LSBoost'
である場合に有効です。
例:“NPrint”,5
データ型:单
|双
|烧焦
|字符串
麻木
- - - - - -数値予測子のビンの個数[]
(空)(既定値) |正の整数スカラー数値予測子のビンの個数。“麻木”
と正の整数スカラーから構成されるコンマ区切りのペアとして指定します。この引数は、菲特森布尔
が木学習器を使用する場合,つまり,“学习者”
が“树”
であるか,模板树
を使用して作成したテンプレートオブジェクトである場合のみ有効です。
“麻木”
の値が空 (既定) である場合、菲特森布尔
はどの予測子もビン化しません。
“麻木”
の値として正の整数スカラー(numBins
)を指定した场合,菲特森布尔
は最大numBins
個の同確率のビンにすべての数値予測子をビン化し,元のデータではなくビンのインデックスに対して木が成長します。
予測子に含まれる一意の値がnumBins
より少なければ,ビンの数をnumBins
より少なくすることができます。
菲特森布尔
は、カテゴリカル予測子をビン化しません。
大規模な学習データセットを使用する場合、このビン化オプションを使用すると学習を高速化できますが、精度が低下する可能性があります。はじめに“NumBins”,50岁
を試してから,精度と学習速度に応じて値を変更できます。
学習済みのモデルでは,ビンのエッジは边沿
プロパティに格納されます。
例:“NumBins”,50岁
データ型:单
|双
CategoricalPredictors
- - - - - -カテゴリカル予测子のリスト“所有”
カテゴリカル予測子のリスト。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
正の整数のベクトル | ベクトルの各エントリは,カテゴリカル変数が含まれている予測子データの列に対応するインデックス値です。インデックス値の範囲は1 ~
|
逻辑ベクトル |
|
文字行列 | 行列の各行は予測子変数の名前です。名前はPredictorNames のエントリに一致しなくてはなりません。文字行列の各行が同じ長さになるように、名前を余分な空白で埋めてください。 |
文字ベクトルの细胞配列または字符串配列 | 配列の各要素は予測子変数の名前です。名前はPredictorNames のエントリに一致しなくてはなりません。 |
“所有” |
すべての予測子がカテゴリカルです。 |
“CategoricalPredictors”
の仕様は以下の場合適切です。
“学习者”
は木学習器を指定します。
“学习者”
は,すべての予測子がカテゴリカルであるk最近傍学習器を指定します。
各学習器は,学習器に対応する近似関数と同じ方法でカテゴリカル予測子を特定して処理します。k最近傍学習器については菲茨康
の“CategoricalPredictors”
を、木学習器についてはfitctree
の“CategoricalPredictors”
を参照してください。
例:“CategoricalPredictors”、“所有”
データ型:单
|双
|逻辑
|烧焦
|字符串
|细胞
PredictorNames
- - - - - -予測子変数名予測子変数名。一意な名前の字符串配列または一意な文字ベクトルの细胞配列として指定します。PredictorNames
の機能は,学習データの提供方法によって決まります。
X
とY
を指定した場合、PredictorNames
を使用してX
内の予測子変数に名前を割り当てることができます。
PredictorNames
内の名前の順序は、X
の列の順序に一致しなければなりません。つまり,PredictorNames {1}
はX(:,1)
の名前,PredictorNames {2}
はX(:,2)
の名前であり、他も同様です。また、大小(X, 2)
とnumel(PredictorNames)
は等しくなければなりません。
既定ではPredictorNames
は{'x1','x2',…}
です。
Tbl
を指定する場合、PredictorNames
を使用して学習に使用する予測子変数を選択できます。つまり,菲特森布尔
は、学習中にPredictorNames
の予測子変数と応答変数のみを使用します。
PredictorNames
はTbl.Properties.VariableNames
のサブセットでなければならず,応答変数の名前を含めることはできません。
既定では,すべての予測子変数の名前がPredictorNames
に格納されます。
“PredictorNames”
と公式
の両方ではなく、いずれか一方を使用して学習用の予測子を指定することをお勧めします。
例:PredictorNames,{‘SepalLength’,‘SepalWidth’,‘PetalLength’,‘PetalWidth}
データ型:字符串
|细胞
ResponseName
- - - - - -応答変数名“Y”
(既定値) |文字ベクトル|串スカラー応答変数名。文字ベクトルまたは字符串スカラーとして指定します。
Y
を指定した場合、“ResponseName”
を使用して応答変数の名前を指定できます。
ResponseVarName
または公式
を指定した場合、“ResponseName”
を使用することはできません。
例:“ResponseName”、“响应”
データ型:烧焦
|字符串
选择权
- - - - - -並列計算と乱数設定のオプション並列計算と乱数設定のオプション。構造体として指定します。statset
を使用して选择权
構造体を作成します。
メモ
並列計算を行うには、并行计算工具箱™ が必要です。
次の表は,オプションのフィールドとその値の一覧です。
フィールド名 | 値 | 既定の設定 |
---|---|---|
UseParallel |
並列計算する場合は、この値を |
假 |
UseSubstreams |
再生可能な方法で並列計算する場合は,この値を 再现性のある计算を行うには, |
假 |
流 |
RandStream オブジェクトまたはそのようなオブジェクトの 细胞配列としてこの値を指定します。UseParallel の値が真的 でなく,UseSubstreams の値も假 でない場合,単一オブジェクトを使用します。この場合は,並列プールと同じサイズの细胞配列を使用します。 |
流 を指定しなかった場合,菲特森布尔 は既定のストリームを使用します。 |
再現性のある並列学習の使用例については,アンサンブル分類の並列学習を参照してください。
デュアルコア以上のシステムの場合,菲特森布尔
では英特尔®スレッディング ビルディング ブロック (待定)を使用して学習を並列化します。したがって、UseParallel
オプションを真的
と指定しても,単一のコンピューターではそれほど大きな高速化の效果は得られないことがあります。英特尔TBBについての详细は,https://software.intel.com/en-us/intel-tbbを参照してください。
例:“选项”,statset (UseParallel,真的)
データ型:结构体
CrossVal
- - - - - -交差検证フラグ“关”
(既定値) |“上”
CVPartition
- - - - - -交差検証分割[]
(既定値) |cvpartition
分割オブジェクト交差検証分割。cvpartition
で作成したcvpartition
分割オブジェクトとして指定します。分割オブジェクトは,交差検証のタイプと、学習セットおよび検証セットのインデックス付けを指定します。
交差検証済みモデルの作成で指定できる名前と値の引数は,CVPartition
、坚持
、肯福尔德
、忽略
の4つのうちのいずれかのみです。
例:本量利= cvpartition(500年,“KFold”,5)
500年を使用して個の観測値に対する5分割交差検証について無作為な分割を作成するとします。この場合,“CVPartition”,本量利
を使用して交差検証済みモデルを指定できます。
坚持
- - - - - -ホールドアウト検証の対象データの比率ホールドアウト検証に使用されるデータの比率。(0,1)の範囲のスカラー値として指定します。‘坚持’,p
を指定した場合、以下の手順が実行されます。
p * 100
%のデータを無作為に選択して検証データとして確保し,残りのデータを使用してモデルに学習をさせる。
コンパクトな学習済みモデルを交差検証済みモデルの训练
プロパティに格納する。
交差検証済みモデルの作成で指定できる名前と値の引数は,CVPartition
、坚持
、肯福尔德
、忽略
の4つのうちのいずれかのみです。
例:“坚持”,0.1
データ型:双
|单
肯福尔德
- - - - - -分割の数10
(既定値) |1より大きい正の整数値交差検証済みモデルで使用する分割の数。1より大きい正の整数値として指定します。KFold, k
を指定した場合、以下の手順が実行されます。
データを無作為にk
個のセットに分割する。
各セットについて,そのセットを検定データとして确保し,他のk
- 1個のセットを使用してモデルに学習をさせる。
k
個のコンパクトな学習済みモデルを,交差検証済みモデルの训练
プロパティに含まれているk
行 1列の 细胞ベクトルに格納する。
交差検証済みモデルの作成で指定できる名前と値の引数は,CVPartition
、坚持
、肯福尔德
、忽略
の4つのうちのいずれかのみです。
例:“KFold”,5
データ型:单
|双
忽略
- - - - - -分析法の交差検証のフラグ“关”
(既定値) |“上”
分析法の交差検証のフラグ。“上”
または“关”
として指定します。“Leaveout”,“上”
を指定した場合,n個の観測値(nはモデルのNumObservations
プロパティで指定される,欠損観測値を除外した観測値の個数)のそれぞれについて以下の手順が実行されます。
いずれかの観測値を検証データとして確保し、他の n-1個の観測値を使用してモデルに学習をさせる。
n個のコンパクトな学習済みモデルを,交差検証済みモデルの训练
プロパティに含まれている N行 1.列の 细胞ベクトルに格納する。
交差検証済みモデルの作成で指定できる名前と値の引数は,CVPartition
、坚持
、肯福尔德
、忽略
の4つのうちのいずれかのみです。
例:“Leaveout”,“上”
一会
- - - - - -学習に使用するクラスの名前学習に使用するクラスの名前。分类配列、文字配列、string 配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列として指定します。一会
のデータ型はTbl
内の応答変数またはY
と同じでなければなりません。
一会
が文字配列の場合,各要素は配列の1つの行に対応しなければなりません。
一会
の使用目的は次のとおりです。
学習時のクラスの順序を指定する。
クラスの順序に対応する入力または出力引数の次元の順序を指定する。たとえば,成本
の次元の顺序や预测
によって返される分類スコアの列の順序を指定するために一会
を使用します。
学习用にクラスのサブセットを选択する。たとえば,Y
に含まれているすべての異なるクラス名の集合が{ 'A', 'B', 'C'}
であるとします。クラス“一个”
および“c”
のみの観測値を使用してモデルに学習をさせるには,'ClassNames',{'a','c'}
を指定します。
一会
の既定値は,Tbl
内の応答変数またはY
に含まれているすべての異なるクラス名の集合です。
例:“类名”,{' b ', ' g '}
データ型:分类
|烧焦
|字符串
|逻辑
|单
|双
|细胞
成本
- - - - - -誤分類のコスト誤分類のコスト。“成本”
と正方行列または構造体から構成されるコンマ区切りペアとして指定します。指定する項目によって、内容は次のように変わります。
既定値は(
です。K
)-眼睛(K
)K
は異なるクラスの数です。
メモ
菲特森布尔
は成本
を使用して,先前的
で指定されたクラスの事前确率を调整します。その后,菲特森布尔
は調整した事前確率を学習に使用し,コスト行列を既定設定にリセットします。
例:'Cost',[0 1 2;1 0 2;2 2 0)
データ型:双
|单
|结构体
先前的
- - - - - -事前確率“经验”
(既定値) |“制服”
|数値ベクトル|構造体配列各クラスの事前確率。“先前的”
と次の表の値から構成されるコンマ区切りのペアとして指定します。
値 | 説明 |
---|---|
“经验” |
クラスの事前確率は,Y のクラスの相対的頻度です。 |
“制服” |
クラスの事前確率はいずれも1 / K (Kはクラス数)となります。 |
数値ベクトル | 各要素はクラスの事前确率です。Mdl。一会 に従って要素を並べ替えるか,一会 名前と値のペアの引数を使用して順序を指定します。要素は合計が1 になるように正規化されます。 |
構造体配列 | 構造体
|
菲特森布尔
は,合计が1になるように先前的
の事前確率を正規化します。
例:结构(“类名”,{{setosa,杂色的,‘virginica}}, ClassProbs, 1:3)
データ型:烧焦
|字符串
|双
|单
|结构体
ScoreTransform
- - - - - -スコア変換“没有”
(既定値) |“doublelogit”
|“因弗罗吉特”
|“ismax”
|分对数的
|関数ハンドル| ...スコア変換。文字ベクトル,弦スカラー,または関数ハンドルとして指定します。
次の表は、使用可能な文字ベクトルおよび 串スカラーをまとめています。
値 | 説明 |
---|---|
“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
内の変数の名前観測値の重み。“权重”
と,正の値の数値ベクトルまたはTbl
内の変数の名前から構成されるコンマ区切りのペアとして指定します。X
またはTbl
の各行に含まれている観測値は,权重
の対応する値で重み付けされます。权重
のサイズは,X
またはTbl
の行数と等しくなければなりません。
入力データをテーブルTbl
として指定した場合,权重
は数値ベクトルが含まれているTbl
内の変数の名前にすることができます。この場合,权重
には文字ベクトルまたは字符串スカラーを指定しなければなりません。たとえば,重みベクトルW
が资源描述。W
として格納されている場合,' W '
として指定します。それ以外の場合,モデルに学習をさせるときに,Tbl
の列はW
を含めてすべて予測子または応答として扱われます。
合计が各クラスの事前确率の値と等しくなるように权重
が正規化されます。
既定の設定では,权重
は(
です。n
, 1)n
はX
またはTbl
の観測値数です。
データ型:双
|单
|烧焦
|字符串
重新取样
- - - - - -リサンプリングを示すフラグ“关”
|“上”
リサンプリングを示すフラグ。重新取样的
と“关”
または“上”
から構成されるコンマ区切りのペアとして指定します。
重新取样
を使用してリサンプリングを指定する場合は、データセット全体に対してのリサンプリングをお勧めします。つまり、FResample
の既定設定である1を使用します。
LearnRate
- - - - - -縮小学習率1
(既定値) |(0,1] の数値スカラー縮小学習率。“LearnRate”
と区間(0,1)の数値スカラーから構成されるコンマ区切りのペアとして指定します。
縮小を使用してアンサンブルに学習をさせるには、LearnRate
を1
未満の値(一般的な0.1
など)に設定します。縮小を使用してアンサンブルに学習をさせると,学習反復数を増やす必要がありますが,多くの場合精度が向上します。
例:“LearnRate”,0.1
データ型:单
|双
LearnRate
- - - - - -縮小学習率1
(既定値) |(0,1] の数値スカラー縮小学習率。“LearnRate”
と区間(0,1)の数値スカラーから構成されるコンマ区切りのペアとして指定します。
縮小を使用してアンサンブルに学習をさせるには、LearnRate
を1
未満の値(一般的な0.1
など)に設定します。縮小を使用してアンサンブルに学習をさせると,学習反復数を増やす必要がありますが,多くの場合精度が向上します。
例:“LearnRate”,0.1
データ型:单
|双
RatioToSmallest
- - - - - -最小相当クラスについてのサンプリング比率最小相当クラスについてのサンプリング比率。“比率最小”
と数値スカラー,または学習データ内の異なるクラス数と同じ長さをもつ正の値の数値ベクトルから構成されるコンマ区切りのペアとして指定します。
学習データにK
個のクラスがあり、最小相当クラスには米
個の観測値があるとします。
既定値は(
で,K
, 1)米
個の観測値を各クラスから抽出するよう指定します。
例:‘RatioToSmallest’,(2,1)
データ型:单
|双
MarginPrecision
- - - - - -収束速度を制御するマージン精度0.1
(既定値) |[0,1] の数値スカラー収束速度を制御するマージン精度。'MarginPrecision'
と区間[0,1]の数値スカラーから構成されるコンマ区切りのペアとして指定します。MarginPrecision
は,収束に必要なブースティング反復回数に影響を与えます。
ヒント
多数の学習器を使用してアンサンブルに学習をさせるには,MarginPrecision
に小さい値を指定します。少数の学习器を使用して学习をさせる场合は,大きい値を指定します。
例:“MarginPrecision”,0.5
データ型:单
|双
RobustErrorGoal
- - - - - -目標分類誤差0.1
(既定値) |非負の数値スカラー目標分類誤差。“RobustErrorGoal”
と非負の数値スカラーから構成されるコンマ区切りのペアとして指定します。可能な値の上限は,RobustMarginSigma
およびRobustMaxMargin
の値によって決まります。ただし,上限が1
を超えることはできません。
ヒント
通常は,特定の学习セットについてRobustErrorGoal
の最适な范囲が存在します。小さすぎる値または大きすぎる値を设定した场合,分类精度が低いモデルが生成される可能性があります。适切な値を求めるには,交差検证を试してください。
例:“RobustErrorGoal”,0.05
データ型:单
|双
RobustMarginSigma
- - - - - -分類マージンの分布の広がり0.1
(既定値) |正の数値スカラー学習データに対する分類マージンの分布の広がり。“RobustMarginSigma”
と正の数値スカラーから構成されるコンマ区切りのペアとして指定します。RobustMarginSigma
を指定する前に,RobustBoost
に関する文献([19]など)を調べてください。
例:“RobustMarginSigma”,0.5
データ型:单
|双
RobustMaxMargin
- - - - - -最大分类マージン0
(既定値) |非負の数値スカラー学習データの最大分類マージン。“RobustMaxMargin”
と非負の数値スカラーから構成されるコンマ区切りのペアとして指定します。分類マージンがRobustMaxMargin
未満になるように学習データ内の観測値数が最小化されます。
例:“RobustMaxMargin”,1
データ型:单
|双
NPredToSample
- - - - - -サンプリングする予測子の個数1
(既定値) |正の整数各ランダム部分空間学習器についてサンプリングする予測子の個数。“NPredToSample”
と区间1,...,Pの正の整数から构成されるコンマ区切りのペアとして指定します.Pは予测子変数の个数(大小(X, 2)
または大小(TBL,2)
)です。
データ型:单
|双
OptimizeHyperparameters
- - - - - -最適化するパラメーター“没有”
(既定値) |“汽车”
|“所有”
|使用可能パラメーター名の 串配列または 细胞配列|optimizableVariable
オブジェクトのベクトル最適化するパラメーター。'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
- - - - - -最適化のオプション最适化のオプション。“HyperparameterOptimizationOptions”
と構造体から構成されるコンマ区切りのペアとして指定します。この引数を指定すると,名前と値のペアの引数OptimizeHyperparameters
の効果が変化します。この構造体のフィールドは、すべてオプションです。
フィールド名 | 値 | 既定の設定 |
---|---|---|
优化器 |
|
“bayesopt” |
AcquisitionFunctionName |
オブジェクト关数のランタイムによって最适化が异なるので,名前に |
“expected-improvement-per-second-plus” |
MaxObjectiveEvaluations |
目的関数評価の最大的数。 | “bayesopt” または“randomsearch” の場合は30 、“gridsearch” の场合はグリッド全体 |
MaxTime |
制限时间。正の実数を指定します。制限时间の単位は, |
正 |
NumGridDivisions |
“gridsearch” における各次元の値の個数。値は、各次元の値の個数を表す正の整数のベクトル、またはすべての次元に適用されるスカラーが可能です。カテゴリカル変数の場合、このフィールドは無視されます。 |
10 |
ShowPlots |
プロットを表示するかどうかを示す論理値。真的 の场合,最良の目的关数の値が反复回数に対してプロットされます0.1つまたは2つの最适化パラメーターがあり,优化器 が“bayesopt” である場合,ShowPlots はパラメーターに対する目的関数のモデルのプロットも行います。 |
真的 |
SaveIntermediateResults |
优化器 が“bayesopt” である場合に結果を保存するかどうかを示す論理値。真的 の場合,“BayesoptResults” という名前のワークスペース変数が反复ごとに上书きされます。この変数はBayesianOptimization オブジェクトです。 |
假 |
详细的 |
コマンドラインへの表示。
詳細については, |
1 |
UseParallel |
ベイズ最適化を並列実行するかどうかを示す論理値。並列実行には并行计算工具箱が必要です。並列でのタイミングに再現性がないため,並列ベイズ最適化で再現性のある結果が生成されるとは限りません。詳細については,並列ベイズ最適化を参照してください。 | 假 |
再分配 |
反復ごとに交差検証を再分割するかどうかを示す論理値。 分割ノイズが考虑されるので,通常は |
假 |
以下の3つのフィールド名は1つだけ使用できます。 | ||
CVPartition |
cvpartition によって作成されるcvpartition オブジェクト。 |
交差検証フィールドが指定されていない場合“Kfold”,5 |
坚持 |
ホールドアウトの比率を表す范囲(0,1) のスカラー。 |
|
Kfold |
1より大きい整数。 |
例:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)
データ型:结构体
Mdl
——学習済みのアンサンブル分類モデルClassificationBaggedEnsemble
モデルオブジェクト|ClassificationEnsemble
モデルオブジェクト|分类分区集合
交差検証済みモデルオブジェクト学習済みのアンサンブル モデル。次の表のモデル オブジェクトのいずれかとして返されます。
モデルオブジェクト | 交差検証オプションの指定 | 方法 の設定 |
重新取样 の設定 |
---|---|---|---|
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编码器™が必要です。詳細については,コード生成の紹介を参照してください。
アンサンブル集約アルゴリズムの詳細については,アンサンブルアルゴリズムを参照してください。
方法
がブースティングアルゴリズム,学习者
が决定木になるように设定した场合,既定では浅い决定木が成长します。木の深さは,模板树
を使用して名前と値のペアの引数MaxNumSplits
、MinLeafSize
およびMinParentSize
を指定することにより调整できます。
バギング(“方法”,“包”
)の场合,菲特森布尔
は、誤分類コストが大きいクラスをオーバーサンプリングし、誤分類コストが小さいクラスをアンダーサンプリングすることにより、袋装の標本を生成します。その結果、现成的の標本では、誤分類コストが大きいクラスの観測値は少なくなり、誤分類コストが小さいクラスの観測値は多くなります。小さいデータセットと歪みが大きいコスト行列を使用してアンサンブル分類に学習をさせる場合、クラスあたりの 现成的観測値の数が少なくなる可能性があります。このため、现成的の推定誤差の変動幅が非常に大きくなり、解釈が困難になる可能性があります。事前確率が大きいクラスでも同じ現象が発生する場合があります。
アンサンブル集約法(“方法”、“RUSBoost”
)がRUSBoostである場合,名前と値のペアの引数RatioToSmallest
では最小相当クラスに関して各クラスのサンプリングの比率を指定します。たとえば,学習データにA および B という 2 つのクラスがあるとします。A には 100 個の観測値、B には 10 個の観測値が含まれています。また、最小相当クラスでは米
個の観測値が学習データに含まれているとします。
“比率最小”,2
を設定した場合,
=年代
*米
2 * 10
=20
になります。したがって,菲特森布尔
はクラスの一个20个の観测値とクラスの乙20个の観测値を使用して,すべての学习器に学习をさせます。‘比率最小’,[2]
を設定した場合も同じ結果になります。
‘RatioToSmallest’,(2,1)
を設定した場合,
=s1
*米
2 * 10
=20
および
=s2
*米
1 * 10
=10
になります。したがって,菲特森布尔
はクラスの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。
菲特森布尔
は,名前と値の引数“选项”
を使用した並列学習をサポートします。オプションは,选择= statset (UseParallel,真的)
のように,statset
を使用して作成します。並列アンサンブル学習では,名前と値の引数“方法”
を“包”
に設定する必要があります。並列学習は“包”
の既定のタイプである木学習器にのみ使用できます。
ハイパーパラメーターの最適化を並列実行するには,この関数を呼び出すときに名前と値の引数“HyperparameterOptimizationOptions”,结构('UseParallel',true)
を指定します。
並列的なハイパーパラメーターの最適化の詳細については,並列ベイズ最適化を参照してください。
並列計算の全般的な情報については,自動並列サポートを使用した MATLAB関数の実行(并行计算工具箱)を参照してください。
次のMATLABコマンドに対応するリンクがクリックされました。
コマンドを MATLABコマンド ウィンドウに入力して実行してください。网状物ブラウザーは MATLABコマンドをサポートしていません。
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。