- アンサンブル学習とは何か
- バギングとは何か
- ブースティングとは何か
- スタッキングとは何か
一つの学習モデルだけでは良い精度を出すのは難しい時にアンサンブル学習はよく使われます。
3人寄れば文殊の知恵のように、複数の弱いモデルを組合わせることで高い精度を出すという考え方です。
アンサンブル学習は、分析コンペでもよく使われる効果的な手法となっています。
アンサンブル学習の種類
アンサンブル学習の手法は大きく3種類に分けることができます。
それぞれの手法について解説していきます。
バギング
バギングとは、
です。
バギングでは、学習データから複数のサンプルデータを作り、各サンプルデータを元にモデルを作成していきます。
たくさん作ったモデルにそれぞれ推論させた結果を多数決して、最終的な出力結果となります。
サンプルデータの作成
サンプルデータを作成するときには、データの抽出(ブートストラップ法)と特徴量の選択の2段階でサンプルデータを作成します。
ブートストラップ法は、学習データからランダムにデータを抽出して、サンプルデータを作成する手法です。
ブートストラップ法では、前のサンプルで1度使ったデータを間引くことはしないので、同じデータを再利用することを許容します。
ブートストラップ法で抽出したデータに対して特徴量をランダムに取捨選択することで、多様性のあるサンプルデータを作成することが可能です。
バギングのメリット・デメリット
バギングの特徴は以下となります。
- 簡単に実装できる
- ある程度高い精度が見込める
- 並列に学習を実施できる
- サンプルデータに偏りが出ることがある
ブースティング
ブースティングとは、
です。
ブースティングでは、前の学習モデルが間違えた部分を補うようにモデルを作っていきます。
まず1つ目のモデルは学習データを通常通り学習していきます。
次に、2つ目のモデルは1つ目のモデルが間違ったデータを重要視して学習していきます。
3つ目のモデルは今までのモデル(1つ目と2つ目)が間違ったデータを重要視して学習するといったように、連続的に学習していくことで、より精度を向上させていくことができる手法です。
ブースティングには、データ重みづけの方法によって様々な手法があり、代表的なものはアダブーストや勾配ブースティングといったものになります。
ブースティングのメリット・デメリット
ブースティングの特徴は以下となります。
- 高い精度が見込める
- 学習データが同一なので、データの偏りがない
- 複数モデルを同時に学習できないため時間がかかる
- 同じデータで何度も学習するため、過学習が起こりやすい
スタッキング
スタッキングとは、
です。
スタッキングでは、学習データに対して様々なモデルを作り、その出力結果を入力として更にモデルを作ります。
分かり易く2段構成を例として出しましたが、3段以上の構成にすることも可能です。
精度を上げるには学習用モデルに様々なアルゴリズムを使う必要があるので、機械学習に詳しくないと使うのが難しい手法になります。
データ分析コンペでもよく使われる手法になります。
スタッキングのメリット・デメリット
スタッキングの特徴は以下となります。
- 様々なモデルで多角的に学習するので、精度が上がる可能性が見込める
- 複数のモデルを作るため手間がかかる
- 結果の因果関係がブラックボックスになる
- 計算コストが大きい
まとめ
アンサンブル学習とは、複数のモデルを組み合わせて機械学習の予測精度を高める手法でした。
アンサンブル学習は、バギング・ブースティング・スタッキングの3種類に分けられます。
バギングでは、モデルを並列に並べて学習して多数決を用います。
ブースティングでは、モデルを直列にして精度改善をしていきます。
スタッキングでは、他のモデルの出力を新たな特徴量として学習していきます。
アンサンブル学習は高い精度が出やすいので、使ってみてください。
参考文献

コメント
バギングについて、復元抽出がメリットに繋がるのに、その内容を記載していないのはおかしくないか?