多変量解析 と呼ばれるものの多くは、用意したデータ全部に当てはまるモデルを探そうとします。 とてもシンプルで良いのですが、重要な特徴の見逃しや、 過学習 などの問題が起きることがあります。
データをいくつかのグループに分け、それぞれのグループにちょうど良いモデルを作ってから、 全体のモデルを作ることをアンサンブル学習と言います。
ちなみに、「データを分けて調べる」という発想は、古くは 層別 と呼ばれています。 アンサンブル学習の機能があるソフトは、この層別の目的でも役に立ちます。 筆者の場合は、主にこの目的で使っています。
用意したデータからサンプリングしたデータの組について、それぞれモデルを作って、それから全体を考えます。 各組でデータに重複があるようにするのが一般的です。
なお、バギングのアイディアは、 サンプリング の方法として、どんな手法にも使えるものですが、例えばRのバギングのパッケージは、サンプリングした組について、 決定木 をします。
ランダムフォレスト は、バギングのさらに発展版です。 サンプリングするだけでなく、変数も全部は使わずに、一部を使います。
データの行と列の両方に対して、サンプリングした組を作るイメージになります。
ランダムフォレストの場合は、ここからさらに進んで、サンプリングした組のそれぞれに対して、 決定木 のモデルを作ります。
バギングが行のサンプリングで、ランダムフォレストが行と列のサンプリングなので、 「列だけサンプリング」という方法があっても良いと思いますが、名前が付いていないようです。 ここでは「列のバギング」としています。
実務的なデータ分析では、 多重共線性 との付き合い方がポイントなので、その観点では、列のバギングというのも使い道があるように思っています。
ブースティングは、全部のデータでモデルを作ってから、 モデルに当てはまりの悪いサンプルに重みを付けて、 当てはまりの悪かったサンプルが当てはまりやすいモデルも作ります。
統計学ではランダムサンプリングを重視する傾向があり、アンサンブル学習でもランダムサンプリングが使われます。
ところが、データの時間軸の情報に大きな意味があったり、時間軸で見た時に大きな特徴がある時は、 時間軸方向に、データを区切って、区間ごとに処理した結果を総合的に分析するアプローチが役に立ちます。 このサイトでは、 移動分析 がそうした方法の一種です。
筆者としては、ランダムではないサンプリングをするツールは、もっと充実して欲しいところです。
「フリーソフトではじめる機械学習入門」 荒木雅弘 著 森北出版 2014
様々な手法について、Wekaでの実施例があります。
強化学習、
ニューラルネットワーク、
ベイジアンネットワーク、
決定木、
Ridge回帰、Lasso回帰、等、主な手法の理論について、解説があり、とてもコンパクトにまとまっています。
アンサンブル学習として、バギングやブースティングも詳しいです。
RapidMinerについても、入門的な解説が少し付いています。
「Rによるデータサイエンス」 金明哲 著 森北出版 2007
バギングやブースティングがコンパクトにまとまっています。
「情報理論の基礎 情報と学習の直観的理解のために」 村田昇 著 サイエンス社 2008
機械学習の中での情報理論を理解するための本です。
バギングやブースティングについての解説のほかに、情報幾何学の視点での解説もあります。
「パターン認識と学習の統計学」 甘利俊一・麻生英樹・津田宏治・村田昇 著 岩波書店 2003
この本は、
パターン認識
の手法全般、
カーネル法
、バギングとブースティングの 3つの部分に分かれていて、それぞれの著者が異なります。
順路 次は 一括学習と逐次学習