バギング(またはブートストラップ・アグリゲーティングとも呼ばれます)は、ノイズの多いデータ・セット内の分散を小さくするために一般的に使用されているアンサンブル学習の手法です。 バギングでは、トレーニング・セット内のランダムなサンプル・データが置換によって選択されます。これは、個々のデータ・ポイントが複数回、選択可能であることを意味します。 いくつかのデータ・サンプルが生成された後、これらの弱いモデルは独立してトレーニングされ、タスクのタイプ(回帰または分類など)に応じて、その予測値の平均、または多数決によって、より精度の高い推定値が得られます。
ちなみに、ランダム・フォレスト・アルゴリズムはバギング手法を拡張したものとして考えられており、バギング手法とランダム性の特徴の両方を使用して、複数の決定木を集めたランダム・フォレストを作成します。
アンサンブル学習は、大人数グループで行った決定の方が一人のエキスパートの判断に勝るという「群衆の叡智」の考え方に基づいています。 同様に、アンサンブル学習とは、ベースとなる学習器(またはモデル)を集めたグループ(またはアンサンブル)を用いて、最終予測値の精度を高める手法のことです。 ベース学習器、または弱学習器と呼ばれる単一のモデルは、単体では高バリアンスになるか、または高バイアスとなり、うまく機能しない場合があります。 しかし複数の弱学習器を集めた場合は、これらを組み合わせることで、バイアスやバリアンスが低くなり、優れたモデル・パフォーマンスを生み出せるため、強い学習機を生み出すことが可能です。
アンサンブル学習の手法は、多くの場合は、決定木を使用して図解されています。それは、決定木が剪定されていない時には、このアルゴリズムは過学習を起こす(低バリアンス、高バイアス)傾向にあり、決定木が小さい場合は、1つの水準しか持たない決定木である決定株のように、学習不足(低バリアンス、高バイアス)になる可能性があるからです。 あるアルゴリズムが、トレーニング・セットに対して過学習、または学習不足を起こす場合は、新しいデータセットに対して汎用化できないことに注意する必要があります。このため、アンサンブル学習の手法は、新しいデータセットに対してモデルの汎用化を可能にする対処法として使用されています。 決定木は、高バリアンス、または高バイアスの場合を明確に示しますが、その一方で、決定木は、バイアスとバリアンスのトレードオフにおける「スイート・スポット」を見つけるためにアンサンブル学習を活用する、唯一のモデリング手法ではないということは、注目すべき点です。
バギングとブースティングは、アンサンブル学習の主要な2つの手法です。 こちらの調査(PDF、248 KB)(ibm.com外部へのリンク)で示されている通り、この2つの学習手法の主な違いは、そのトレーニング方法にあります。 バギングでは、弱い学習機は並行して訓練されますが、ブースティングでは順番に学習させます。 これは、一連のモデルが構築され、それぞれ新しいモデルの反復により、以前のモデルで誤分類されたデータの重みが増すことを意味します。 この重みを再配分することにより、アルゴリズムが、パフォーマンスを改善する上で焦点を絞る必要のあるパラメータを特定するのに役立ちます。 AdaBoostは、「adaptative boosting algorithm(アダプティブ・ブースト・アルゴリズム)」の略で、このタイプの最初のアルゴリズムの1つであるため、最もよく使用されるブースティング・アルゴリズムの1つとなっています。 その他にも、XGBoost、GradientBoost、BrownBoostなどのブースティング・アルゴリズムがあります。
バギングとブースティングのもう1つの違いは、使用される状況が違うことです。 例えば、バギング手法が主に高バリアンスで低バイアスを示す弱学習器に対して使用されている一方で、ブースティング手法は低バリアンスで高バイアスであることが確認される際に使われます。
1996年、Leo Breiman氏 (PDF、829 KB)(ibm.com外部へのリンク)が、以下の3つの基本手順を持つバギング・アルゴリズムを提唱しました。
分類や回帰の問題にバギングの手法を使用する場合は、主なメリットと課題としては、以下が挙げられます。
バギングの主なメリット:バギングの主な課題:
バギングは多くの業界で使用されており、GRAMMY Debates with IBM Watsonなど、現実世界での価値と興味深い視点の両方に対する洞察を提供しています。 主なユースケースには以下が挙げられます。
IBM SPSS Modelerは、データ・パターンの検出、予測精度の向上、意思決定の改善を支援するための予測分析を提供します。
信頼性の高いAIを、任意のクラウド上で構築して拡大できます。 ModelOps用のAIライフサイクルを自動化します。
IBMデータ・サイエンス・コミュニティーを通して、データサイエンスと機械学習についてさらに詳しく知ることができます。