回答:
3つすべては、いわゆる「メタアルゴリズム」です。分散(バギング)、バイアス(ブースティング)、または予測力の向上(スタッキングエイリアスアンサンブル)を減らすために、いくつかの機械学習手法を1つの予測モデルに組み合わせるアプローチです。
すべてのアルゴリズムは2つのステップで構成されます。
元のデータのサブセットで単純なMLモデルの分布を作成します。
分布を1つの「集約」モデルに結合します。
3つの方法すべての簡単な説明を次に示します。
バギング( B ootstrap Agg regat ingの略)は、繰り返しとの組み合わせを使用して元のデータセットからトレーニング用の追加データを生成し、元のデータと同じカーディナリティ/サイズのマルチセットを生成することにより、予測の分散を減らす方法です。トレーニングセットのサイズを大きくしても、モデルの予測力を改善することはできませんが、分散を小さくするだけで、予測を期待される結果に狭く調整できます。
ブースティングは2段階のアプローチで、最初に元のデータのサブセットを使用して一連の平均パフォーマンスモデルを作成し、次に特定のコスト関数(=多数決)を使用してそれらを組み合わせてパフォーマンスを「ブースト」します。バギングとは異なり、古典的なブースティングでは、サブセットの作成はランダムではなく、以前のモデルのパフォーマンスに依存します。すべての新しいサブセットには、以前のモデルによって誤分類された可能性のある要素が含まれます。
スタッキングはブースティングに似ています。元のデータに複数のモデルを適用することもできます。ただし、ここでの違いは、重み関数の経験式だけではなく、メタレベルを導入し、別のモデル/手法を使用して入力を推定し、すべてのモデルの出力と重みを推定するか、言い換えれば、どのモデルがうまく機能し、どのような入力データが不適切に与えられたかを判断します。
比較表は次のとおりです。
ご覧のとおり、これらはすべて、複数のモデルを組み合わせてより良いモデルにするためのさまざまなアプローチであり、勝者はここだけではありません。すべてがドメインと実行する内容に依存します。スタッキングを一種のより高度なブースティングとして扱うこともできますが、メタレベルに適したアプローチを見つけることが難しいため、このアプローチを実際に適用することは困難です。
それぞれの短い例:
バギング:
並列アンサンブル:各モデルは独立して構築されます
偏りではなく、分散を減らすことを目指します
高分散低バイアスモデル(複雑なモデル)に適しています
ツリーベースの方法の例は、完全に成長したツリーを開発するランダムフォレストです(RFはツリー間の相関を減らすために成長手順を変更することに注意してください)
ブースティング:
順次アンサンブル:以前のモデルが欠けている場合にうまく機能する新しいモデルを追加しよう
分散ではなく、バイアスを減らすことを目指します
低分散高バイアスモデルに適しています
ツリーベースの方法の例は勾配ブースティングです
Yuqianの答えを少し詳しく説明します。バギングの背後にある考え方は、ノンパラメトリック回帰法(通常は回帰ツリーまたは分類木ですが、ほぼすべてのノンパラメトリック法になります)でオーバーフィットすると、バイアスの高い分散、バイアスなし(または低い)になりがちです/分散のトレードオフ。これは、オーバーフィッティングモデルは非常に柔軟であるため(同じ母集団の多数のリサンプルでバイアスが低い場合)、ばらつきが大きいためです(サンプルを収集してオーバーフィットし、サンプルを収集してオーバーフィットすると、ノンパラメトリック回帰がデータのノイズを追跡するため、結果は異なります)。私たちは何ができる?多くのリサンプル(ブートストラップから)をそれぞれオーバーフィットし、それらを一緒に平均化できます。これは同じバイアス(低)につながるはずですが、分散の一部を相殺し、
勾配ブースティングは基本的にUNDERFITノンパラメトリック回帰で機能します。これは単純すぎて、データの実際の関係を説明するのに十分な柔軟性がありません(つまり、偏りがあります)新しいデータセットを収集する場合に同じ結果を得るため)。これをどのように修正しますか?基本的に、適合していない場合、モデルのRESIDUALSにはまだ有用な構造(母集団に関する情報)が含まれているため、残差に基づいて構築されたツリーを使用してツリー(または任意のノンパラメトリック予測子)を補強します。これは、元のツリーよりも柔軟でなければなりません。より多くのツリーを繰り返し生成します。各ステップkで、ステップk-1からの残差に適合したツリーに基づく重み付きツリーを追加します。これらのツリーの1つが最適である必要があります。そのため、これらのすべてのツリーに重みを付けるか、最適なツリーを選択することになります。したがって、勾配ブースティングは、より柔軟な候補ツリーの束を構築する方法です。
すべてのノンパラメトリック回帰または分類アプローチと同様に、バギングまたはブースティングがうまく機能する場合があり、場合によっては一方または他方のアプローチが平凡であり、一方または他方のアプローチ(または両方)がクラッシュして燃えることがあります。
また、これらの手法はどちらもツリー以外の回帰アプローチに適用できますが、おそらく、アンダーフィッティングまたはオーバーフィッティングを避けるためにパラメーターを設定することが難しいため、ツリーに最も一般的に関連付けられています。
要約すると、通常、1つのアルゴリズム内でバギングとブースティングが使用され、通常、異なるアルゴリズムからのいくつかの結果を要約するためにスタッキングが使用されます。
Random Forest
。GBM
とXGBoost
、分散を排除するが、過学習の問題を持っています。バギングとブースティングの両方で、すべてのステップで単一の学習アルゴリズムが使用されます。ただし、トレーニングサンプルの処理にはさまざまな方法が使用されます。両方とも、複数のモデルから決定兼ね備えたアンサンブル学習法です
袋詰め:
Mサブセット(ブートストラップ)を取得するには1.リサンプリングのトレーニングデータを、
2. Mデータセット(異なるサンプル)に基づいてM分類器(同じアルゴリズム)をトレーニングします。
3.最終分類器は、投票によりM個の出力を結合します。
サンプルの重量は等しくなります。
分類子の重みは等しくなります。
分散を減らすことでエラーを減らします
。
ブースティング:ここではadaboostアルゴリズムに焦点を当てます
。
2.次のM-1ラウンドでは、最終ラウンドで誤分類されたサンプルの重みを増やし、最終ラウンドで正しく分類されたサンプルの重みを減らします
。誤分類の少ない分類器へ。
サンプルを段階的に再重み付けします。最後のラウンドの結果に基づいた各ラウンドの重みは
、リサンプリング(袋詰め)の代わりにサンプルを再重み付け(ブースティング)します。