機械学習では、ブースティングは、主に教師あり学習におけるバイアスと分散を低減するために使用されるアンサンブル メタ アルゴリズムであり、弱い学習者を強い学習者に変換する一連の機械学習アルゴリズムです。 ブースティングは、Kearns と Valiant (1988、1989) によって提起された質問に基づいています。「一連の弱い学習器は強い学習器を作成できますか?」無作為の推測よりも優れています) 例のラベル付けが適切です)。対照的に、強力な学習器は、真のクラスと任意によく相関する分類器です。ブースティングでは、ランダムなデータ サンプルが選択され、モデルに適合され、その後、順番にトレーニングされます。つまり、各モデルは、前のモデルの弱点を補おうとします。 各反復では、個々の分類器からの弱いルールが強力な予測ルールに結合されます。
3つのブースト方法
さまざまなブースティング アルゴリズムは、連続プロセスで弱学習器を作成および集約する方法が異なる場合があります。 一般的な持ち上げ方法は次の 3 つです。
- アダプティブ ブースティング (AdaBoost とも呼ばれます):AdaBoost アルゴリズムは、Yoav Freund と Robert Schapire によって作成されました。 この方法は反復的に動作し、誤って分類されたデータ ポイントを検出し、その重みを調整してトレーニング エラーを最小限に抑えます。 このモデルは、最も強力な予測子が生成されるまで、順次最適化を続けます。
- 勾配ブースティング:Leo Breiman の研究に基づいて、Jerome H. Friedman は勾配ブースティングを開発しました。これは、アンサンブルに予測子を順番に追加することで機能し、各予測子が前の予測子の誤差を修正します。 ただし、勾配ブースティングは、AdaBoost のようにデータ ポイントの重みを変更するのではなく、前の予測子の残差に基づいてトレーニングします。 勾配ブースティングという名前は、勾配降下アルゴリズムとブースティング手法を組み合わせたものであるために使用されます。
- エクストリーム グラディエント ブースティング (XGBoost): XGBoost は、計算速度とスケールを向上させるために設計された勾配ブースティングの実装です。 XGBoost は、CPU の複数のコアを活用して、トレーニング中に並行して学習します。
ブースティング 利点
- 実装が簡単:ブースティングをいくつかのハイパーパラメータ調整オプションと併用して、適合性を向上させることができます。 ブースティング アルゴリズムには欠落データを処理するためのルーチンが組み込まれているため、データの前処理は必要ありません。 Python を使用する場合、アンサンブル メソッド用の scikit-learn ライブラリ (sklearn.ensemble とも呼ばれます) を使用して、AdaBoost、XGBoost などの一般的なブースト メソッドを簡単に実装できます。
- バイアスを減らす:ブースティング アルゴリズムは、複数の弱学習器を順番に組み合わせて、観察を反復的に改善します。 このアプローチは、浅いデシジョン ツリーやロジスティック回帰モデルで一般的に見られる高いバイアスを軽減するのに役立ちます。
- 計算効率:ブースティング アルゴリズムはトレーニング中に予測力を向上させる特徴のみを選択するため、次元を削減し、計算効率を向上させるのに役立ちます。
ブースティングチャレンジ
- 過学習:ブースティングが過剰適合の軽減に役立つのか、それとも過剰適合を悪化させるのかについては、さまざまな研究 (ibm.com の外部リンク) でいくつかの議論があります。 予測が新しいデータセットに一般化できないことが実際にあるため、これは課題に含まれていました。
- 集中的な計算: ブースティング手法での逐次トレーニングは規模を拡大するのが困難です。 XGBoost は他のタイプのブースティングで発生するスケーラビリティの問題に対処しようとしますが、各推定変数はその前任者に基づいて構築されるため、ブースティング モデルは計算コストが高くなります。 バギングと比較して、ブースティング アルゴリズムは、多数のパラメーターもモデルの動作に影響を与えるため、トレーニングに時間がかかる可能性があります。
参考文献
【1】https://www.ibm.com/cn-zh/topics/boosting