主要内容

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

アンサンブルアルゴリズム

このトピックでは,バギング,ランダム空间,各种のブースティングなど,统计和机器学习工具箱™でサポートされるアンサンブル习アルゴリズムについて说明し。アルゴリズムアルゴリズム,fitcensemblefitrensembleまたはtemplateEnsembleの名前と値のペアの引数“方法”を使用して指定できます。学習器のアンサンブルを作成するには,分類の場合はfitcensemble,回帰の場合はfitrensembleを使用します。ECOCマルチクラス学習用のアンサンブルバイナリ学習器を指定するには,templateEnsembleを使用して作成したアンサンブル学習器テンプレートをfitcecocに渡します。

引导聚合(バギング)とランダムフォレストの場合は,TreeBaggerも使用できます。

“方法”の値 アルゴリズム サポートされる問題
“包” 引导聚合(バギング)とランダムフォレスト[1][2][3] バイナリおよびマルチクラス分類,回帰
“子” ランダム部分空間[9] バイナリおよびマルチクラス分類 ランダムランダム分空间の分享
“AdaBoostM1” バイナリ分類用の適応ブースティング[5][6][7][11] バイナリ分類
“AdaBoostM2” マルチクラス分類用の適応ブースティング[5] マルチクラス分類 アンサンブル分類の使用によるクラスラベルの予測
“GentleBoost” ジェントル適応ブースティング[7] バイナリ分類
“LogitBoost” 適応ロジスティック回帰[7] バイナリ分類
“LPBoost” 線形計画ブースティング[13] バイナリおよびマルチクラス分類 小さいアンサンブルでのLPBoostとTotalBoost
“LSBoost” 最小二乗ブースティング[2][8] 回帰
“RobustBoost” ロバストブースティング[4] バイナリ分類 robustboostの调整
“RUSBoost” ランダムアンダーサンプリングブースティング[12] バイナリおよびマルチクラス分類 不均衡データでの分類
“TotalBoost” 完全補正ブースティング[13] バイナリおよびマルチクラス分類 小さいアンサンブルでのLPBoostとTotalBoost

適切なアルゴリズムを選択する方法については,適用するアンサンブル集約法の選択を参照してください。

LPBoostTotalBoostRobustBoostなど一部のアルゴリズムを使用するには优化工具箱™が必要であることに注意してください。

引导聚合(バギング)とランダムフォレスト

统计和机器学习工具箱には,バギングおよびランダムフォレスト用に3つのオブジェクトが用意されています。

TreeBaggerとバギングアンサンブル(ClassificationBaggedEnsembleおよびRegressionBaggedEnsemble)の违いについては,TreeBaggerとバギングアンサンブルの比較を参照してください。

“引导聚合”“バギング”)はアンサンブル学習の一種です。データセットに対して決定木などの弱学習器をバギングするには,データセットのブートストラップ複製を多数生成し,この複製に対して決定木を成長させます。N個の観測値からN個を復元抽出法で無作為に選択することにより,各ブートストラップ複製を取得します(Nはデータセットのサイズ)。さらに,アンサンブル内のすべての木で各決定分岐の予測子を無作為に選択できます。これはランダムフォレスト[2]と呼ばれる手法で,バギング木の精度が向上することが知られています。既定では,各分岐に対して無作為に選択する予測子の個数は,分類の場合は予測子の個数の平方根,回帰の場合は予測子の個数の3分の1です。モデルに学習をさせた後で関数预测を使用すると,新しいデータについて学習済みアンサンブルの予測応答を求めることができます。预测は,個々の木による予測を平均します。

既定では,バギング木の葉ごとの最小観測値数は,分類の場合は1に,回帰の場合は5に设定さます。通讯,既定の设定のリーフサイズ使してなりしは,非常に深くますますはは,アンサンブルの予测を高度めるはほとんど最适な设定。多重くの合书。そうすることによってますリーフするによって,学校済みだけでなく,学校やだけでなく,学校习予测の,习やだけでなく,所以习やだけでなく,学校习だけでなくのもれなる,学校や予测のもさますの叶ごとさやだけでなく,学校や予测のにれますだけでなくさずににリーフだけでなくだけでなくず短缩少なくやsの最小観测観测は,templateTreeまたはTreeBaggerの名前と値のペアの引数“MinLeafSize”を使用して制御できます。バギングアンサンブルの作成にfitcensemblefitrensembleを使用した場合は,関数templateTreeを使用して木学習器のオプションを指定することに注意してください。

バギングされた決定木の特徴量のいくつかは固有なアルゴリズムになります。N個の観測値からN個を復元抽出すると,決定木ごとに平均37%の観測値が省略されます。このような省略された観測値はout-of-bag“観測値と呼ばれます。TreeBaggerとバギングアンサンブル(ClassificationBaggedEnsembleおよびRegressionBaggedEnsemble)には,out-of-bag観測値を使用するプロパティとオブジェクト関数があります。これらは,名前がoobで始まります。

  • 予測力と特徴量の重要度は,関数oobPredictを使用して推定できます。oobPredictは,観測値がout-of-bagであるアンサンブル内のすべての木による予測の平均を計算することにより,各観測値についてout-of-bag予測を推定します。

  • 平均out-of-bag誤差の推定には,oobErrorTreeBaggerの場合)またはoobLoss(バギングアンサンブルの場合)を使用します。これらの関数は,学習に使用したすべての観測値について,out-of-bag予測応答と観測された応答を比較します。out-of-bagの平均は真のアンサンブル誤差の不偏推定量です。

  • 特徴量の重要度のout-of-bag推定を取得するには,OOBPermutedPredictorDeltaErrorプロパティ(TreeBaggerの場合)またはoobPermutedPredictorImportanceプロパティ(バギングアンサンブルの場合)を使用します。1変数または 1 列ごとに out-of-bag データが無作為に並べ替えられ、この並べ替えによる out-of-bag 誤差の増加が推定されます。増加がより大きいほど、特徴はより重要になります。したがって、学習の過程で予測力と特徴量の重要度について信頼できる推定が得られるので、バギング アンサンブル用の検定データを提供する必要はありません。

TreeBaggerは,接近プロパティで近接行列も提供します。あるツリーの同じリーフに2つの観測値が着地するたびに,その近接度は1増加します。正規化するには,これらの近接度をアンサンブル内のすべてのツリーにおいて合計し,ツリーの数で除算します。生成される行列は,対角要素が1に等しく非対角要素が0 ~ 1の範囲にある対称行列です。この行列を使用すると,外れ値である観測値とクラスターを多次元尺度構成法によりデータから検出できます。

バギングバギング使使,以下を参照てください。

TreeBaggerとバギングアンサンブルの比較

TreeBaggerとバギングアンサンブル(ClassificationBaggedEnsembleおよびRegressionBaggedEnsemble)はほとんどの機能が共通していますが,すべてではありません。また,一部の機能は名前が異なります。

バギングアンサンブルにはないTreeBaggerの機能

機能 TreeBaggerプロパティ TreeBaggerメソッド
近接行列の計算 接近

Fillprox.mdsprox

Fillprox.を使用してTreeBaggerモデルの近接行列と外れ値を推定するときに,MATLAB®はn行n列の行列の近似計算をメモリ内で行わなければなりません。nは観測値の個数です。したがってnが中程度~大規模である場合,近接行列と外れ値の推定は行わないでください。

外れ値の計算 概要 該当なし
分類マージンの使用による予測子の重要度のout-of-bag推定 OOBPermutedPredictorDeltaMeanMarginおよびOOBPermutedPredictorCountRaiseMargin 該当なし
個別に学習させた2つのアンサンブルのマージ 該当なし 附加
分位点回帰 該当なし quantilePredictSmileileError.oobQuantilePredictoobQuantileError
アンサンブル作成に対する高配列のサポート 該当なし 詳細については,高配列を参照してください。

TreeBaggerにはないバギングアンサンブルの機能

機能 説明
ハイパーパラメーターの最適化 名前と値のペアの引数“OptimizeHyperparameters”を使用する。
学習を高速化するための数値予測子のビン化 名前と値のペアの引数“NumBins”を使用する。
预测用のコード生成 モデルに学習をさせた後で,新しいデータについてラベルを予測するC / c++コードを生成できます。C / c++コードの生成にはMATLAB编码器™が必要です。詳細については、コード生成の绍介を参照してください。

TreeBaggerとバギングアンサンブルにおける名前の違い

機能 TreeBagger バギングアンサンブル
予測子ごとの分離基準の貢献度 DeltaCriterionDecisionSplitプロパティ predictorImportance(分類)またはpredictorImportance(回帰)の最初の出力
予測子の関連付け SurrogateAssociationプロパティ predictorImportance(分類)またはpredictorImportance(回帰)の2番目の出力
予測子の重要度に関するout-of-bag推定 OOBPermutedPredictorDeltaErrorプロパティ oobPermutedPredictorImportance(分類)またはoobPermutedPredictorImportance(回帰)の出力
誤差(誤分類の確率または平均二乗誤差) 错误メソッドとoobErrorメソッドが用意されています。 损失メソッドとoobLossメソッド(分類),または损失メソッドとoobLossメソッド(回帰)
追加した木の学習とアンサンブルへの追加 growTreesメソッド 的简历メソッド(分類)または的简历メソッド(回帰)
ツリーごとの分類マージンの平均 meanMarginメソッドとoobMeanMarginメソッドが用意されています。 边缘oobEdgeメソッド(分類)

さらに,モデルの学習と応答の予測を行うときに,2つの重要な違いがあります。

  • TreeBaggerに誤分類コスト行列を渡した場合,この行列が木に渡されます。fitcensembleに誤分類コスト行列を渡した場合,この行列を使用してクラスの事前確率が調整されます。その後fitcensembleは,调整调整された事前と既定のコスト列を木に渡し列既定既定コスト列列列は木コスト列列Kクラスでは(K)的黑眼圈(K)です。

  • ClassificationBaggedEnsemble损失および边缘メソッドとは異なり,TreeBagger错误およびmeanMarginメソッドは,それぞれのクラスの事前確率について,入力観測値の重みを正規化しません。

ランダム部分空間

ランダム部分空間アンサンブル(子空间)を使使用しし,判别分享(ClassificationDiscriminant)またはk最近傍法 (ClassificationKNN)分類器の精度を向上させます。また,子空间アンサンブルはすべての予測子をもつアンサンブルよりも少ないメモリを使用し,さらに欠損値()も処理できます。

基本のランダム部分空間アルゴリズムでは以下のパラメーターを使用します。

  • mは各学習器で標本を取り出す次元(変数)の数です。mの設定には名前と値のペアNPredToSampleを使用します。

  • dはデータ内の次元数で,Xデータ行列の列(予測子)の数を示します。

  • nはアンサンブル内に存在する学習器の数です。nlearn.を入力してnを設定します。

基本のランダム部分空間アルゴリズムは以下の手順を実行します。

  1. m予測子のセットを非復元抽出法によりdの候補値から無作為に選択します。

  2. m個の選択された予測子のみを使用して,弱学習器を学習させます。

  3. 弱学習器がnになるまで,手順1と2を繰り返します。

  4. 弱学習器の分数予測を平均して予測し,分数の平均が最も高いカテゴリを分類します。

Dの次元から选択可なのの个の予测子ので,弱学仪がさよう选択できます。“AllPredictorCombinations”に設定します。この場合,アンサンブルにはnchoosek(大小(X, 2), NPredToSample)個の弱学習器があります。

関数fitcensembleは,後続の学習器が前に使用された予測子を使用する確率が下がるように,学習器の予測子を選択した後で予測子の重みを小さくします。このように重み付けを行うと,一様に重み付けするよりも学習器内の予測子が均等に分布される傾向をもちます。

子空间の使用例は,ランダムランダム分空间の分享を参照してください。

ブースティングアルゴリズム

バイナリ分類用の適応ブースティング

AdaBoostM1という名前の適応ブースティングは,バイナリ分類のブースティングアルゴリズムとして一般的に利用されています。アルゴリズムでは,学習器に連続的に学習を行わせます。インデックスtをもつすべての学習器について,AdaBoostM1は重み付き分類誤差を計算します。

ε t n 1 N d n t y n h t x n

ここで

  • xnは,観測値nの予測子値のベクトルです。

  • ynは真のクラスラベルです。

  • htはインデックスtをもつ学習器の予測(仮説)です。

  • はインジケーター関数です。

  • d n t は,ステップtにおける観測値nの重みです。

AdaBoostM1は,次に学習器tによって誤分類された観測値の重みを増加させ,学習器tによって正しく分類された観測値の重みを減少させます。次の学習器t + 1は,更新された重み d n t + 1 をもつデータで学習を行います。

学習が完了した後で,AdaBoostM1は次の式を使用して新しいデータの予測を計算します。

f x t 1 T α t h t x

ここで

α t 1 2 日志 1 ε t ε t

は,アンサンブルに存在する弱仮説の重みです。

AdaBoostM1による学習は,指数損失の逐次最小化と見なすことができます。

n 1 N w n 经验值 y n f x n

ここで

  • yn∊{1 + 1}は真のクラスラベルです。

  • wnは最大で1まで正規化される観測値の重みです。

  • f (xn)∊(-∞,+∞)は予測された分類スコアです。

観測値の重みwnは,fitcensembleに渡した元の観測値の重みです。

AdaBoostM1アンサンブル分類の预测メソッドの2番目の出力は,2つのクラスとN個の観測値のN行2列の行列です。この行列の2列目は常に1列目の負数に等しくなります。预测メソッドはマルチクラスモデルと一致する2つのスコアを返します。ただし2番目の列は常に最初の列の負数になるため,これは冗長です。

AdaBoostM1が最もよく使用されるのは,木の決定株(既定の設定)または浅いツリーで使用される場合です。ブースティングされた決定株の性能が低い場合は,最小親ノードサイズを学習データの4分の1に設定します。

既定の設定では,ブースティングアルゴリズムの学習率は1です。学習率を低い値に設定した場合には,アンサンブル学習率は低くなりますが,最終的には良い結果が得られます。最もよく使用される学習率は,0.1です。1より低い学習率を使用することは,“縮小“と呼ばれる場合があります。

AdaBoostM1の使用例は,コストを考慮して2つの分類モデルを比較するECOCマルチクラス学習のアンサンブルテンプレートの作成を参照してください。

マルチクラス分類用の適応ブースティング

AdaBoostM2という名前の適応ブースティングは,複数クラス用に拡張されたAdaBoostM1です。重み付き分類誤差の代わりに,AdaBoostM2ではN個の観測値とKクラスに対して,重み付き疑似損失を使用します。

ε t 1 2 n 1 N k y n d n k t 1 h t x n y n + h t x n k

ここで

  • ht(xn, k)はステップtでの学習器の予測における信頼性であり,0(まったく信頼できない)から1(信頼性が高い)までの範囲のクラスkで表されます。

  • d n k t は,ステップtにおけるクラスkの観測値の重みです。

  • ynは真のクラスラベルで,Kの値のいずれかになります。

  • 2番目の合計は,真のクラスyn以外のすべてのクラスを対象としたものです。

疑似損失の解釈は分類誤差より難しいですが,基本的概念は同じです。疑似損失は,アンサンブル内の任意の学習器の分類精度を測定するために使用できます。疑似損失は,通常はAdaBoostM1の重み付き分類誤差と同じように動作します。ブースティングアンサンブルの最初のいくつかの学習器では,疑似損失の値は低くなります。その後、学習ステップが進むと、アンサンブル学習速度は遅くなり、疑似損失値は 0.5 に接近するほどに増加します。

AdaBoostM2の使用例については,アンサンブル分類の使用によるクラスラベルの予測を参照してください。

ジェントル適応ブースティング

ジェントル適応ブースティング(GentleBoost,温柔演としても知られていまです)は,AdaBoostM1LogitBoostの機能が結合されています。AdaBoostM1と同様に,GentleBoostは指数損失を最小化します。ただし,数値最適化の設定は異なります。LogitBoostと同様に,すべての弱学習器は回帰モデルを応答値yn∊{1 + 1}に当てはめます。

fitcensembleはアンサンブルオブジェクトのFitInfoプロパティに平均二乗誤差を計算して格納します。平均二乗誤差は次の式で求められます。

n 1 N d n t y ˜ n h t x n 2

ここで

  • d n t は,ステップtにおける観測値の重みです(重みの合計は1)。

  • ht(xn)は応答値ynに近似された回帰モデルhtの予測です。

個々の学習器の強度が弱くなるに従って,重み付けられた平均二乗誤差は1に近づきます。

GentleBoostの使用例は,ビン化と並列計算の使用によるECOC分類器の学習の高速化アンサンブル分類における不均衡データまたは一様ではない誤分類コストの処理を参照してください。

適応ロジスティック回帰

適応ロジスティック回帰(LogitBoost)もバイナリ分類用の一般的なアルゴリズムです。LogitBoostAdaBoostM1と同じように機能しますが,二項分布からの逸脱度を最小化するという点が異なります。

n 1 N w n 日志 1 + 经验值 2 y n f x n

ここで

  • yn∊{1 + 1}は真のクラスラベルです。

  • wnは最大で1まで正規化される観測値の重みです。

  • f (xn)∊(-∞,+∞)は予測された分類スコアです。

二項分布からの逸脱度により,誤分類の程度が大きい観測値(ynf (xn)が高い負の値になる観測値)への重みの割り当てが低くされます。LogitBoostを使用すると,クラスが適切に分割されないようなデータに対しても,AdaBoostM1より高度平面精选达达成できます。

LogitBoostアンサンブルの学習器tは回帰モデルを応答値にあてはめます。

y ˜ n y n p t x n p t x n 1 p t x n

ここで

  • y *n∊{0,+ 1}は(1ではなく0に)ラベルを付け直されたクラスです。

  • pt(xn)は観測値xnがクラス1になる確率を現在のアンサンブルで推定した値です。

fitcensembleはアンサンブルオブジェクトのFitInfoプロパティに平均二乗誤差を計算して格納します。平均二乗誤差は次の式で求められます。

n 1 N d n t y ˜ n h t x n 2

ここで

  • d n t は,ステップtにおける観測値の重みです(重みの合計は1)。

  • ht(xn)は応答値 y ˜ n に近似された回帰モデルhtの予測です。

値ynの範囲は-∞~ +∞です。そのため,平均二乗誤差には、明確な限界がありません。

LogitBoostの使用例は,アンサンブル分類に学習をさせる数値予測子の値のビン化による学習の高速化を参照してください。

線形計画ブースティング

線形計画ブースティング(LPBoost)は,TotalBoostと同様に,学習セットの最小“マージン”を最大化しようとすることにより,マルチクラス分類を実行します。この試行では最適化アルゴリズム(具体的にはLPBoostの線形計画法)が使用されます。そのため,LPBoostTotalBoostを使用するには优化工具箱のライセンスが必要です。

分類のマージンは,真のクラスについて予測されたソフト分類“スコア”と,偽のクラスの最大スコアの差を表します。ツリーの場合,葉ノードの分類の“スコア”は,そのノードでの分類の事後確率です。あるノードにおける分類の事後確率とは,分類によって実際にそのノードに達するのに要した学習シーケンスの数を,そのノードまでの学習シーケンスの数で除算した値です。詳細は,保证金詳細を参照してください。

最小マージンを最大化するのはなぜでしょうか。まず,汎化誤差(新しいデータでの誤差)は負のマージンが発生する確率です。Schapireと歌手[10]は,負のマージンが発生する確率に関して次のような不等式を確立しました。

P 测试 0 P 火车 θ + O 1 N V 日志 2 N / V θ 2 + 日志 1 / δ

ここで,mはマージン,θは任意の正の数値,Vは分類器空間のVapnik-Chervonenkis次元,Nは学習セットのサイズ,δは正の少数です。この不等式は,多数の独立同一分布の学習セットと検定セットに対して確率が1 -δの場合に成立します。この不等式から,汎化誤差を小さくするには,学習セットで観測数を最小化してマージンθより小さくすればよいことがわかります。

LPBoostは,一連の線形プログラミングの問題によって最小マージンの最大化するよう反復します。同様に,その双対性から,LPBoostは最大“エッジ”を最小化します。エッジとは重み付けされた平均マージンです(詳細を参照してください)。反復を実行するたびに,問題の制約が増えていきます。そのため,大きな問題に対しては、最適化の問題の制約が非常に多くなり、解決に時間がかかることになります。

LPBoostは通常,重み付けされた多数の学習器をもつアンサンブルを作成します。この重みは,他の学習器の桁数より小さい桁数です。そのため,重要でないアンサンブルのメンバーをより確実に削除できるようにするため、紧凑的メソッドではLPBoostアンサンブルのメンバーを重みの大きい順に並べ替えられます。これにより,removeLearnersメソッドを使用して的重要性が最も低いメンバーをアンサンブルから簡単に削除できるようになります。

LPBoostの使用例については,小さいアンサンブルでのLPBoostとTotalBoostを参照してください。

最小二乗ブースティング

最小二乗ブースティング(LSBoost)はアンサンブル回帰をあてはめます。ステップごとに,アンサンブルは新しい学習器を、実際に観測された応答とこれまでに学習させたすべての学習器を対象に集約された予測との差分にあてはめます。アンサンブルは近似によって平均二乗誤差を最小化します。

LearnRateパラメーターを渡すことによって,LSBoostを縮小で使用できます。既定の設定では,このパラメーターは1に設定されており,アンサンブルは最大速度で学習を行います。LearnRate0から1までの値に設定した場合は,アンサンブルはすべての新しい学習器をyn- ηf(xnに当てはめます。ここで,

  • ynは,観測された応答です。

  • f (xn)は,これまでに観测値xnについて学習を行ったすべての弱学習器から集約された予測です。

  • ηは学習率です。

LSBoostの使用例については,アンサンブル回帰に学習をさせるブースティング回帰アンサンブル回帰の最適化およびアンサンブルの正則化を参照してください。

ロバストブースティング

AdaBoostM1LogitBoostなどのブースティングアルゴリズムでは,ブースティングのステップごとに誤分類された観測値の重みを増加させます。これらの重みは非常に大きくなる可能性があります。その場合は,ブースティングアルゴリズムが少数の誤分類された観測値に集中して,学習データの大部分が無視されてしまう可能性があります。その結果,平均分類精度が低下します。このような状況では,ロバストブースティング(RobustBoost)の使用を試すことができます。このアルゴリズムでは,全データ分の重みを少数の誤分類された観測値に割り当ててしまうようなことはほとんど起こりません。そのため,優れた平均分類精度を達成できます。RobustBoostを使用するには优化工具箱のライセンスが必要です。

AdaBoostM1LogitBoostとは異なり,RobustBoostでは,特定の損失関数を最小化することはありません。代わりに,一定のしきい値を超える分類マージンをもつ観測値の数を最大化します。

RobustBoostは,時間発展に基づいて学習を行います。このアルゴリズムは,t = 0から始まります。ステップごとに,RobustBoostは最適化問題を解いて,時間Δtでの肯定的なステップと,それに対応する学習データΔmの平均マージンにおける肯定的な変更を行います。3次のつの条件のいずれかが真の場合に,RobustBoostは学習を停止し,終了します。

  • 時間tが1に到達する。

  • ΔtおよびΔmの更新によっては,RobustBoostが最適化問題の解を求めることができなくなる。

  • RobustBoostは,要求した数の学習器を作成できます。

RobustBoostの結果は,どのような終了条件でも使用できます。交差検証または独立した検定セットを使用することによって,分類精度を推定します。

RobustBoostで得られる精度を高くするには,関数fitcensembleで次の3つのパラメーターを調整します。このパラメーターはRobustErrorGoalRobustMaxMarginおよびRobustMarginSigmaです。はじめに、RobustErrorGoalの値を0から1まで変化させます。RobustErrorGoalについて指定できる最大値は,他の2つのパラメーターによって決まります。高すぎる値を指定した場合は,fitcensembleはエラーメッセージを表示し,RobustErrorGoalに使用できる値の範囲を示します。

RobustBoostの使用例については,robustboostの调整を参照してください。

ランダムアンダーサンプリングブースティング

ランダムアンダーサンプリングブースティング(RUSBoost)は不均衡なデータを分類する場合,つまり,学習データの一部のクラスのメンバーが他のクラスよりはるかに少ない場合に特に効果的です。俄文は下“随机抽样”の略です。このアルゴリズムでは,N(学習データで最もメンバー数が少ないクラスのメンバー数)をサンプリングの基本単位として使用します。これよりメンバー数が多いクラスは,各クラスの観測値の中からN件だけを抽出してアンダーサンプリングされます。つまり,クラス数がKの場合,アンサンブル内の弱学習器のそれぞれについて,RUSBoostはK個のクラスのそれぞれからN件の観測値があるデータのサブセットを抽出します。ブースティングはマルチクラス分類用の適応ブースティングの手順に従って実行され,アンサンブルの再度の重み付けと構築が行われます。

RUSBoostアンサンブルを構築する場合,RatioToSmallestという名前のオプションの名前と値のペアがあります。K個の値 (各値は割り当てられたクラスの標本数 N の倍数) があるベクトルを指定します。たとえば、最も小さいクラスのメンバー数が N = 100 の場合、RatioToSmallest(2、3、4)は各弱学習器のメンバー数がクラス1では200年クラス2では300年クラス3では400であることを表します。RatioToSmallestが特价のクラスのの数号大大値値导き出した合并,RUSBoostはメンバーを復元抽出します。それ以外の場合,RUSBoostはメンバーを非復元抽出します。

RUSBoostの使用例については,不均衡データでの分類を参照してください。

完全補正ブースティング

完全補正ブースティング(TotalBoost)は線形計画ブースティング(LPBoost)と同様に,学習セットの最小“マージン”を最大化しようとすることにより,マルチクラス分類を実行します。この試行では最適化アルゴリズム(TotalBoostの二次計画法)が使用されます。そのため,LPBoostTotalBoostを使用するには优化工具箱のライセンスが必要です。

分類のマージンは,真のクラスについて予測されたソフト分類“スコア”と,偽のクラスの最大スコアの差を表します。ツリーの場合,葉ノードの分類の“スコア”は,そのノードでの分類の事後確率です。あるノードにおける分類の事後確率とは,分類によって実際にそのノードに達するのに要した学習シーケンスの数を,そのノードまでの学習シーケンスの数で除算した値です。詳細は,保证金詳細を参照してください。

最小マージンを最大化するのはなぜでしょうか。まず,汎化誤差(新しいデータでの誤差)は負のマージンが発生する確率です。Schapireと歌手[10]は,負のマージンが発生する確率に関して次のような不等式を確立しました。

P 测试 0 P 火车 θ + O 1 N V 日志 2 N / V θ 2 + 日志 1 / δ

ここで,mはマージン,θは任意の正の数値,Vは分類器空間のVapnik-Chervonenkis次元,Nは学習セットのサイズ,δは正の少数です。この不等式は,多数の独立同一分布の学習セットと検定セットに対して確率が1 -δの場合に成立します。この不等式から,汎化誤差を小さくするには,学習セットで観測数を最小化してマージンθより小さくすればよいことがわかります。

TotalBoostは,“エッジ”(重み付きマージン)が特定の値より下であるという制約のもとで,現在の重み分布と初期の重み分布の間のカルバック・ライブラーダイバージェンスのプロキシを最小限にします。このプロキシは,このダイバージェンスの2次展開です。

D W W 0 n 1 N 日志 W n W 0 n n 1 N 1 + W n W 0 n Δ + 1 2 W n Δ 2

ここで,ΔはW (n)(現在の反復と次の反復の重み)とW0(初期の重み分布。一様分布です)の差を表します。この最適化定式によって,重みは0になりません。反復を実行するたびに,問題の制約が増えていきます。そのため,大きな問題に対しては、最適化の問題の制約が非常に多くなり、解決に時間がかかることになります。

TotalBoostは通常,重み付けされた多数の学習器をもつアンサンブルを作成します。この重みは,他の学習器の桁数より小さい桁数です。そのため,重要でないアンサンブルのメンバーをより確実に削除できるようにするため、紧凑的メソッドではTotalBoostアンサンブルのメンバーを重みの大きい順に並べ替えられます。これにより,removeLearnersメソッドを使用して的重要性が最も低いメンバーをアンサンブルから簡単に削除できるようになります。

TotalBoostの使用例については,小さいアンサンブルでのLPBoostとTotalBoostを参照してください。

参照

[1] Breiman, L。“装袋预测”。机器学习26,1996,第123-140页。

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

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

弗洛因德,Y.和R. E. Schapire。在线学习的决策理论推广及其在助推中的应用计算机与系统科学,Vol. 55, 1997, pp. 119-139。

[6]弗里德曼,J。贪婪函数近似:梯度增强机《统计年鉴》,第29卷第5期,2001年,第1189-1232页。

Friedman, J., T. Hastie,和R. Tibshirani。加性逻辑回归:助推的统计学观点《统计年鉴》,第28卷第2期,2000年,第337-407页。

Hastie, T., R. Tibshirani, J. Friedman。统计学习的要素,第二版。纽约:施普林格,2008。

Ho, T. K."构建决策森林的随机子空间方法"《模式分析与机器智能》,第20卷,第8期,1998年,第832-844页。

R. Schapire和Y. Singer。“使用信心评级预测改进了提振算法。”机器学习,Vol. 37, No. 3, 1999, pp. 297-336。

Schapire, r.e.等。“扩大差额:对投票方法有效性的新解释。”《统计年鉴》,1998年第26卷第5期,第1651-1686页。

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

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

参考

||||||||||||

関連するトピック