どうも、カタミチです。
さて、今日もコツコツ「ディープラーニング G検定(ジェネラリスト)公式テキスト 第2版」(以降、『当書』)で勉強です。
「教師あり学習」の代表的な手法紹介の続きですね。前回「線形回帰」と「ロジスティック回帰」をやりましたが今回は…
ランダムフォレスト
3つ目の手法はランダムフォレスト。決定木を使ったもので、回帰問題にも分類問題にも使えるらしいです。
決定木を用いる手法…ということで、かなり前に探索の時に出てきたやつ…?と思ったんですが、あれは探索木でしたね。別物でした。なぜみんな木が好きなのか(ふむ)
決定木については、このサイトが分かりやすかったので、これ見て勉強しました。
画像もお借りします。m(_ _)m
これは「温度」と「湿度」がどのくらいの時に、水を「何リットル飲みたくなる」か?という例題です。インプットデータ(特徴量)としては、
・温度28℃、湿度70%:2.0リットル
・温度24℃、湿度90%:1.0リットル
・温度32℃、湿度62%:2.5リットル
…
みたいなのが沢山あって、それに対してそこから上の図のような木を作るわけですね。これが決定木分析です。ちなみにアウトプットデータ(目的変数)が数値になってることからも分かる通り、回帰問題にも使えるんですが、もちろん分類問題にも使えます。目的変数を飲みたくなる水の量ではなく、「暑い」「暑くない」に置き換えたら分類問題になりますね。
さて、ここまで来れば、ランダムフォレストまであとひと息です。
ランダムフォレストは、特徴量をランダムに選び出して決定木を作る。もう一回ランダムに選び出して決定木を作る…という作業を繰り返して、複数の決定木を作っていきます。1本から2本、4本、10本…。そしていつしかそこには…決定木の森が!つまり、草を超えて森を超えてモーリーファンタジーって事ですね!(違)
…気を取り直して。
微妙に違う木が沢山生えた森が出来上がったところで、準備完了です。
木たちにデータを投げつけることで、それぞれの木からこだまが返ってきます。上の例をそのまま使うなら…
「2.5リットルだよ!」
「1.5リットルだよ!」
「1.5リットルだよ!」
「1.0リットルだよ!」
「1.5リットルだよ!」
…
という感じですね。で、こだまたちの声を森の長が集めて…
「1.5リットルである!」
と答えるのがランダムフォレストって訳ですね。ちなみに回帰問題の場合は、多数決でなく平均を取ったりもするみたいですね、はい。
木を作る時に特徴量をランダムに取り出して学習につかいましたが、これをブートストラップサンプリングと言うみたいです。ブート-ストラップなのか?ブートス-トラップなのか?
どうやらブートストラップ(Bootstrap)でひとつの単語みたいですね。ただ、英単語的にはboot-strapですね。もともとブーツのつまみヒモのことですが、プログラムの世界では「より複雑なプログラムを読み込むための簡単なプログラム」って意味らしいです。なるほどね。つまんで引っ張り上げるわけですね。何となく雰囲気つかめましたね。
ちなみに、色んな形の木…つまり、複数のモデルで学習させることを、アンサンブル学習というらしいです。音楽用語で、合奏や合唱の意味らしいです。なんだか用語がシャレてますねぇ。
さらに厳密には、全体から一部のデータを用いて複数のモデルを作り、それらのモデルを用いて学習する方法をバギングというらしいです。英語で綴ると「bagging」。袋に入れる…って意味ですかね?この用語はちょっと分かりにくいですかねー。ランダムフォレストはバギングの中で決定木を用いている手法、と言えるみたいです。逆に言うと、他にもバギングを使った手法が出てきそうですね。
ランダムフォレストを使った解析例は…
・温度と湿度から飲みたくなる水の量を推測したい。
と言うことにしておきますかねー。前に見た線形回帰で出した例やロジスティック回帰で出した例にも適用はできそうな手法ですが、当てはまりの良さを考えて適用する手法を考えるのがデータサイエンティストの仕事のひとつ…って事ですかねー。
ということで
参考書ではたかだか2ページくらいだったんですが、理解するのにかなり時間が掛かりました…。しかし、時間を掛けたおかげでだいぶつかめた気がします。
教師あり学習として残る手法はあと4つ。引き続き頑張っていきますかねー。
ではまた。
勉強に使ってる書籍はこちら↓
深層学習教科書 ディープラーニング G検定(ジェネラリスト)公式テキスト 第2版