募集中いろいろな大学などでの研究をわかりやすく紹介したり、研究生活のこと・データ解析のことなど書いたり。アンサンブル学習の2つのメリット・利点(回帰分析・クラス分類)アンサンブル学習の2つのメリット・利点(回帰分析・クラス分類)2016年06月15日http://univprof.com/archives/16-06-15-3949163.htmlアンサンブル学習の2つのメリット・利点(回帰分析・クラス分類)みなさん、回帰分析やクラス分類を行うデータ解析・データ分析のときには必ずアンサンブル学習をしましょう!アンサンブル学習はとても単純です。データセットが与えられたときに、たくさんの回帰分析モデルやクラス分類モデルを作ればいいんです。やってたくさんモデルを作るの?たくさんモデルを作る方法は、大きく分けて2通りあります。)を選ぶランダムにサンプルを選ぶです。組み合わせて、ランダムに説明変数とサンプルとを選ぶやり方もあります。モデルを作りましょう!たとえば、200サンプルについて100の説明変数と1つの目的変数があり、回帰分析を行うことを考えます。このとき、ランダムに50の説明変数を選んで目的変数との間で回帰モデルを作ることを、300回繰り返しましょう!これで300の回帰モデルが得られます。ランダムに100サンプルを選んで100の説明変数と1つの目的変数との間でモデルを構築することを、たとえば500回繰り返して、500個の回帰モデルを作ってもよいですね。さっき作った300のモデルと合わせると800個にもなります!ふー。次は予測することを考えます。新しいサンプルを800個のモデルに入力すると、800個の目的変数の推定値が得られます。これらの平均値もしくは中央値を最終的な目的変数の推定値とするわけです。これは回帰分析の場合です。クラス分類の場合は、複数の推定値の多数決をとって、最終的な推定値としています。アンサンブル学習がすでに取り入れられています。ランダムに説明変数とサンプルとを選んで、たくさん決定木を作ってますよね。RFは、決定木でアンサンブル学習を行なった、って感じです。アンサンブル学習のメリットって何?アンサンブル学習のメリットは2つあります。精度が上がる推定値の信頼性を評価できるです。三人寄れば文殊の知恵です。凡人であっても、凡人が三人集まって考えれば、すばらしい知恵が出るというやつです。正解率が70%しかないクラス分類モデルであっても、3つのモデルを集めて多数決を取れば、正解率が上がることがあります。モデルを集めて、よりいっそう正解率をあげよう!っていう試みです。どのようにすればより精度が上がるようになるのでしょうか?2つの方法があります。異なるモデルをたくさん作る一つ目の方法は、異なるモデルをたくさん作ることです。同じことを考える凡人をいくら集めても何も変わらないのと同じで、回帰モデルやクラス分類モデルとしても、似てないモデルをたくさん準備したほうがよいです。ここ、とても大事です。一つ一つのモデルの性能を上げるより、それらのモデルが似ていないほうがよいです。ランダムに説明変数やサンプルを選択した理由はここにあります。性能が上がるように説明変数やサンプルを選ぶやり方もありますが、これですと毎回同じような説明変数やサンプルが選ばれちゃうんですよね・・・。これじゃあ意味がありません。ランダムに選択する以上にすぐれた方法もあります。積極的に似ていないモデルを作る方法です。Adaboostと呼ばれている方法は、たくさんクラス分類モデルを作るときに、これまでのモデルで、不正解になってしまったサンプルにより大きな重みをつけて、新しいモデルを作ります。これを繰り返すことで以前のモデルが正解できなかったサンプルを正解するモデル、つまり以前のモデルと異なるモデルを作ることができます。異なるモデルを作るという点では、いろいろな回帰分析手法を使うとよいです。最初の100個のモデルはPLSでつくって、次の100個のモデルはSVRでつくって、最後の100個のモデルはRFでつくる、といった具合です。このように、なるべく異なるモデルをたくさん作ることで、全体として最終的な推定値の性能が上がります。それぞれのモデルに適切な重みをつける2つ目の方法は、それぞれのモデルに適切な重みをつけることです。3人いたとして、仮に理系の人・文系の人・芸術系の人としましょう。3人でいろいろな問題を解くとき、問題の種類によって得意な人が問題を解いたほうが、完全に多数決にするよりよいですよね。理系の問題は理系の人が解いて、文系の問題は文系の人が解いて、芸術系の問題は芸術系の人が解いて、スポーツの問題は多数決を取りましょう、みたいな感じです。3人より多いときも、全員で多数決を取るより、その問題のジャンルに得意な人たちだけで解いたほうが正解に近づけます。アンサンブル学習にも同じような考え方があります。これまでのアンサンブル学習では、たくさんモデルを準備した後に新しいサンプルの推定をするときは、回帰分析であれば複数の推定値の平均値もしくは中央値をとり、クラス分類モデルでは多数決をとりました。これは、すべてのモデルの重みは等しい、ということになります。不得意が数値として表せれば、それを重みとして重み付け平均を計算したり、重み付け多数決をとったりしたほうがよいわけです。『どうやって重みをつければいいんだ!』という意見は必ずあります。この重み付けはとてもむずかしい問題であり、さらに、同じ回帰分析・クラス分類でも、課題の条件や解析の目的によって適した重みのつけ方は異なります。この重み付けの問題についてはまたのちほど記事にしますね。アンサンブル学習で推定値の信頼性を評価できるアンサンブル学習のメリットの2つ目は、推定値の信頼性を評価できる、です。たくさんのモデルが作られますので、新しいサンプルについてはたくさんの推定値が得られます。回帰分析では平均値や中央値を計算し、クラス分類では多数決をとっていました。これらのたくさんの推定値を活用したいですよね。クラス分類において、たとえば101個の推定値があったとき、101個ともクラス1と判断していたら、信頼性は高そうです。別のパターンとして、51個はクラス1、50個はクラス2と判断していても、多数決をとってクラス1と最終的に推定されます。こちらの場合、101個ともクラス1と推定されたときより信頼できないですよね。回帰分析において、たくさんの推定値がだいたい9から11までの間に分布していて、平均値をとって最終的な推定値が10になったとします。このとき、『10って推定されたけど、実際は9から11くらいの間に正解がありそうだな』ってなります。別のパターンとして、たくさんの推定値がだいたい0から20までの間に分布していて、平均値をとって最終的な推定値が10になったとします。このときは、『10って推定されたけど、実際は0から20くらいの間に正解がありそうだな』ってなります。同じ推定値10でも大きな違いです。たくさんの推定値のクラスごとの割合を評価して推定値の信頼性とします。回帰分析の場合は、3シグマ法にならって、平均値より標準偏差の3倍だけ小さい値から、平均値より標準偏差の3倍だけ大きい値までの間に実際の正解はあるだろう、と考えます。クラス分類の場合は、各クラスの割合が、正解がそのクラスになる確率として考えます。このようにして、推定値だけでなくその分布も見ることで、推定値の信頼性を評価するわけです。実は、これはまさしく、モデルの適用領域を設定することになるのです。アンサンブル学習を行うと半自動的にモデルの適応領域を決められちゃいます!まとめ今回はアンサンブル学習による回帰分析・クラス分類の2つのメリット精度が上がる推定値の信頼性を評価できるについて解説しました。アンサンブル学習を行うことで、モデル性能が向上するだけでなく、モデルの適用領域も考慮できちゃいます。みなさんもぜひアンサンブル学習を活用して、機械学習・データマイニングでどんどん成果をあげてください!ちなみに、たった1つのデメリットはこちらです。公開中のプログラム・コード一覧(実用的かつ実践的なデータ解析・機械学習・データマイニング)主成分分析(PCA)の進化する入門書・実践書~数式なしの導入から実践的応用・結果の解釈まで~(随時更新)20人の学生に対する研究テーマの決め方オススメ記事セレクション。人工知能との未来における人の役割~現役のデータサイエンティストのメッセージ~集中する時間を確保するために大学教授が行っている8つのこと風邪を引かないために大学教授が毎日行っている7つの方法twitterでも発信中。univprofblog1無料メルマガでブログにない情報を配信中。データマイニングブログを勉強しながら役立つ情報を発信しています!フォローしていただけると嬉しいです。