DS講座 機械学習講座

【機械学習講座3】予測モデリング

こんにちは,shun(@datasciencemore)です!!

今回は予測モデリングについてやっていきます.

0.予測モデリングってなに??

予測モデリングってなんですか??

予測モデリングは,予測に特化したモデリングのことで,良い予測モデルを作成するための業務フローのことを示しているよ!!
良い予測モデルを作成するためには,色々と手順を踏まないといけないんだ!!

こちらの図を見て下さい.

予測モデリングは,この図のように

STEP1:探索的データ分析
STEP2:データ分割
STEP3:アルゴリズム選定
STEP4:特徴量エンジニアリング
STEP5:ハイパラチューニング
STEP6:モデル検証

の6つのSTEPに分解できます.

まず予測モデリングの全体像と目的を確認してから,これらの6つのSTEPの概要をみていきましょう.

以下,これらについて概要をみていきます.

1.予測モデリングの全体像と目的

こちらが予測モデリングの全体像になります.

また,図に記載された用語はそれぞれ次のような意味になります.

今後,当講座はこれらの用語で説明していきます.
一部,当講座だけの造語もあるかもしれませんが,わかりやすくするためなのでご承知おきをお願いいたします.
なお,今はこの図を見ただけだとチンプンカンプンだと思いますが,現時点では全く問題ありません.
今後,この図を使用して説明をしていくので,都度都度理解を深めていただければと思います.

さてそれでは早速,予測モデリングの目的について考えてみましょう.

予測モデリングの目的は,この図の右上の未知データの予測値を算出することです.

もっと詳細にいうとただ予測するのではなく適切な予測値を算出する必要がありますね.

よって,予測モデリングの目的は

既知データから適切な正解パターンを学習して,未知データの目的変数を精度良く予測すること!

ということができます.

これを言い換えると

未知データに対し精度良く予測するモデルを見つけること!

と言えます.

この目的を達成するためにする必要があることが冒頭で説明した6つのSTEPなのです.

次項では,これらの6つのSTEPの概要について説明していきます.

2.予測モデリングの6つのSTEP

STEP1.探索的データ分析

探索的データ分析は,データの特徴をおおざっぱに把握した後,①仮説立案と②合否基準立案をします.

①仮説立案:データからわかりそうなことを仮説にする.
②合否基準立案:予測精度に対する合格,不合格の基準を決定する.

STEP2.データ分割

データ分割は過学習をしないように,学習データを適切に分割することです.

モデリングをする本来の目的は既知データを使用して未知データの目的変数を予測することです.

しかし,そのまま既知データにアルゴリズムを適用してモデルを作成しても,そのモデルで得られる予測値は,既知データに過適合したものになるのです.

よって,既知データと未知データの関係と類似の状況を作成するために,既知データを学習データ,評価データに分割し,さらに学習データを複数個に分割するのです.

STEP3.学習ルール選定

学習ルール選定は,学習に使用するアルゴリズムとハイパーパラメータを複数選定することです.

アルゴリズムとは,学習する仕組みだと考えてください.

いくらデータが一緒でも使用するアルゴリズムが違うと結果が変わってきます.

また,アルゴリズムは,学習の前にハイパーパラメータというパラメータを設定する必要があります.

このハイパーパラメータはアルゴリズムにどのように学習するのか,具体的な指示をしてくれるのです.

同じアルゴリズムでもハイパーパラメータの値が違うと結果が変わってくるのです.

アルゴリズムとハイパーパラメータにより,どのように学習するかが確定するのです.

当講座では,アルゴリズムとハイパーパラメータの組み合わせを学習ルールと呼ぶことにします.

以後,ハイパーパラメータのことをハイパラと略すことがあります.
ハイパーパラメータだと長いので...笑

STEP4.特徴量エンジニアリング

特徴量エンジニアリングは,STEP3で選定した学習ルールが一番効果を発揮できるようにデータを変形することです.

例えば,データに文字列型の説明変数があると,ほとんどのアルゴリズムでエラーがでます.

なので,文字列型の説明変数を数値に直したり,one-hot-encodingしたりする必要があります.

他にも説明変数同士を合わせて新たな説明変数を作成することもあります.

STEP5.ハイパラチューニング

STEP3で学習ルール(アルゴリズムとそれに対応するハイパラ)を選定しました.

ここでは,ハイパラの組み合わせであるグリッドを作成し,グリッドの各行ごとにモデルを構築します.

その後,それらのモデルの中から良さげなモデルを選定し,それに評価データを適用することで予測値を算出します.

良さげなモデルが複数あった場合,アンサンブルすることでさらに予測精度を高め,評価データ予測値を算出します.

具体的な実施手順は次のとおりです.

①ハイパラ指定
②探索範囲指定
③グリッド作成
④学習と評価
⑤最適なハイパラの選択
⑥予測値算出
⑦アンサンブル

STEP6.モデル検証

モデル検証は,STEP5で作成したモデルに対し検証することで,大きく次の3つに分類できます.

①モデル評価
②モデル整理
③モデル解釈

①モデル評価では,STEP5で算出した最終予測値を実測値と比較し,どれくらいの予測精度であったかを確認します.
評価の方法は様々ですが,よく使用される評価指標は回帰の場合,RMSE,分類の場合,正答率です.
これにより作成したモデルの予測精度の優劣がわかるのです.

②モデル整理では,作成したモデルがどのような特徴を持っているかを整理します.
モデルの成績や回帰係数を確認します.

③モデル解釈では,複雑なモデルがどのように機能しているかを解釈します.
予測に対する説明変数の重要度や説明変数の値により目的変数がどの程度の値を取るかを算出します.

STEP1~STEP6までやってみて,芳しくない結果であったらまたやり直しです...
どこまで戻るかはその時の状況次第ですね...
モデリングの前の前処理からやり直したほうがいいときもあれば,ちょっと前にもどってハイパラチューニングだけで済む場合もあります.
このあたりは習うより慣れろって感じですね笑

3.予測モデリングと人間の学習プロセスの関係

さぁ,これまでの説明でモデリングがどのようなものかイメージがつきましたでしょうか??

うーん,正直,あんまりわからなかったなぁ...

だと思ったよ.
説明が抽象的だからちょっと理解しづらいよね...
実は,モデリングと僕たち人間が学習するプロセスってすごく似ているんだ!
だからまず,モデリングと人間の学習プロセスの比較をしてみよう!!

人間の学習プロセスを理解するために,まず,次のようなたとえ話でイメージを膨らましましょう.

あなたは来年,難関大学(もしくは難関資格)を受験する予定です.

現時点では,合格できる学力がないので,色々な情報を集め,受験日までに学力を上げる必要があります.

さぁ,どのようにすれば合格できる可能性を高めることができるでしょうか?

次のようにするのがよさそうですね.

STEP1:合格のために様々な情報を集める.
STEP2:過去問や問題集をまんべんなく学習する.
STEP3:良い先生と学習計画の候補を選定する.
STEP4:過去問や問題集をそのまま使うのではなく,本番試験で出題されそうな箇所をまとめる.
STEP5:良い先生と学習計画を見つけ,学習する.その後,試験に臨む.
STEP6:合否の確認をする.不合格だった場合,なぜ失敗したか原因を考える.

どうでしょうか?

多少の違いはあるかもしれませんが,基本的に私たちが勉強して能力を高めるプロセスはこのような感じですよね?

実はこの私たち人間が学習するプロセスとコンピュータが学習するプロセス(いわゆる予測モデリング)はかなり似ているのです.

比較するとこんな感じです.

このことを意識しながら予測モデリングの説明を聞けば納得感が増すと思います.

次回から予測モデリングの各STEPについて詳細に説明してきます.

まとめ

予測モデリングの目的は,精度良く予測するモデルを見つけることです.

そしてその目的を達成するために以下の6つのSTEPを踏む必要があるのでした.

STEP1:探索的データ分析
STEP2:データ分割
STEP3:アルゴリズム選定
STEP4:特徴量エンジニアリング
STEP5:ハイパラチューニング
STEP6:モデル検証

また,予測モデリングと人間の学習プロセスは似ているのでした.

このことを利用して,次回から予測モデリングを人間の学習プロセスに例えて,もう少しイメージが湧くよう詳細に説明していきますね!

それでは,お疲れ様でした!!

-DS講座, 機械学習講座