アンサンブル学習とは?バギング、ブースティング、ブースティングを図で解説

スポンサーリンク
アンサンブル学習とは?バギング、ブースティング、ブースティングを図で解説基礎知識
この記事を読んで分かること
  • アンサンブル学習とは何か
  • バギングとは何か
  • ブースティングとは何か
  • スタッキングとは何か

 

 

一つの学習モデルだけでは良い精度を出すのは難しい時にアンサンブル学習はよく使われます。

3人寄れば文殊の知恵のように、複数の弱いモデルを組合わせることで高い精度を出すという考え方です。

 

アンサンブル学習は、分析コンペでもよく使われる効果的な手法となっています。

 

アンサンブル学習の種類

アンサンブル学習の手法は大きく3種類に分けることができます。

アンサンブル学習の手法
  • バギング
  • ブースティング
  • スタッキング

それぞれの手法について解説していきます。

 

バギング

バギングとは、

複数のモデルを並列に組み合わせて、多数決をとる手法

です。

 

バギングの説明

バギングでは、学習データから複数のサンプルデータを作り、各サンプルデータを元にモデルを作成していきます。

たくさん作ったモデルにそれぞれ推論させた結果を多数決して、最終的な出力結果となります。

 

サンプルデータの作成

サンプルデータを作成するときには、データの抽出(ブートストラップ法)特徴量の選択の2段階でサンプルデータを作成します。

ブートストラップ法は、学習データからランダムにデータを抽出して、サンプルデータを作成する手法です。

ブートストラップ法では、前のサンプルで1度使ったデータを間引くことはしないので、同じデータを再利用することを許容します。

 

ブートストラップ法

 

ブートストラップ法で抽出したデータに対して特徴量をランダムに取捨選択することで、多様性のあるサンプルデータを作成することが可能です。

 

バギングのメリット・デメリット

バギングの特徴は以下となります。

 
メリット
  • 簡単に実装できる
  • ある程度高い精度が見込める
  • 並列に学習を実施できる
 
デメリット
  • サンプルデータに偏りが出ることがある

 

ブースティング

ブースティングとは、

モデルを直列に組み合わせて、間違えた部分を集中的に学習する手法

です。

 

ブースティングとは?

ブースティングでは、前の学習モデルが間違えた部分を補うようにモデルを作っていきます。

まず1つ目のモデルは学習データを通常通り学習していきます。

次に、2つ目のモデルは1つ目のモデルが間違ったデータを重要視して学習していきます。

3つ目のモデルは今までのモデル(1つ目と2つ目)が間違ったデータを重要視して学習するといったように、連続的に学習していくことで、より精度を向上させていくことができる手法です。

 

ブースティングには、データ重みづけの方法によって様々な手法があり、代表的なものはアダブースト勾配ブースティングといったものになります。

 

ブースティングのメリット・デメリット

ブースティングの特徴は以下となります。

 
メリット
  • 高い精度が見込める
  • 学習データが同一なので、データの偏りがない
 
デメリット
  • 複数モデルを同時に学習できないため時間がかかる
  • 同じデータで何度も学習するため、過学習が起こりやすい

 

スタッキング

スタッキングとは、

複数のモデルを積み重ね、前のモデルの出力を特徴量として学習する手法

です。

 

スタッキングとは

スタッキングでは、学習データに対して様々なモデルを作り、その出力結果を入力として更にモデルを作ります

分かり易く2段構成を例として出しましたが、3段以上の構成にすることも可能です。

精度を上げるには学習用モデルに様々なアルゴリズムを使う必要があるので、機械学習に詳しくないと使うのが難しい手法になります。

データ分析コンペでもよく使われる手法になります。

 

スタッキングのメリット・デメリット

スタッキングの特徴は以下となります。

メリット
  • 様々なモデルで多角的に学習するので、精度が上がる可能性が見込める
 
デメリット
  • 複数のモデルを作るため手間がかかる
  • 結果の因果関係がブラックボックスになる
  • 計算コストが大きい

 

まとめ

アンサンブル学習とは、複数のモデルを組み合わせて機械学習の予測精度を高める手法でした。

アンサンブル学習は、バギング・ブースティング・スタッキングの3種類に分けられます。

バギングでは、モデルを並列に並べて学習して多数決を用います。

ブースティングでは、モデルを直列にして精度改善をしていきます。

スタッキングでは、他のモデルの出力を新たな特徴量として学習していきます。

 

アンサンブル学習は高い精度が出やすいので、使ってみてください。

 

参考文献

アンサンブル学習とは?バギングとブースティングとスタッキングの違い|スタビジ
当サイト【スタビジ】の本記事では、アンサンブル学習についてまとめていきます!加えて学習手法のバギング、ブースティング、スタッキングについても紹介します。アンサンブル学習とは機械学習を学ぶ上で非常に重要な考えであり、いくつかのモデルを組み合わせて汎化能力を上げるもの。有名なランダムフォレストやXgboostなどもアンサン...
アンサンブル学習とは?仕組みやアルゴリズムを解説!バギング、ブースティング、スタッキングの違いも紹介| | ITフリーランスエンジニア案件ならtoiroフリーランス
​機械学習において、「アンサンブル学習」という言葉を一度くらいは目にしたことがある人は少なくないのではないでしょうか。実はこの考えは機械学習をしていく...

コメント

  1. 匿名 より:

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

タイトルとURLをコピーしました