こんにちは,shun(@datasciencemore)です!!
今回は,予測モデリングに関する補足として,すごく重要なことなのですが,当たり前すぎて意外と見落としがちな点について焦点を当てていきます.
これは前回までの復習も兼ねているので気楽に聞いていただければと思います.
目次
1.品質の低いデータからは品質の低い結果しか生まれない!!
はい,最初から当然なことを言ってみました笑
ただこんなこというまでもないと思うんですが,意外とそう思っていない人が多いです.
データサイエンス業界で有名な言葉として
Garbage in, Garbage out
という言葉があります.(略すとGIGO)
直訳するとゴミを入力するとゴミが出力されるということです.
この世には今のところ錬金術は存在しません.
いくらディープラーニングなどのデータサイエンス技術が向上しても肝心のデータの品質が低ければ,残念ながら出てくる結果も品質が低いものとなります.
データ分析は料理とよく例えられますが,データの品質が低いことが料理でいうと,材料が腐っていることに該当します.
いくらシェフや調理器具が一流であっても,肝心のデータが腐っていたら,どんなに頑張っても出来上がる料理がいいものには仕上がらないでしょう.
2.未知データは目的変数の値がわからない!!
はい,これも当たり前ですね笑
当たり前というか,教師あり学習の前提条件です.
未知データは目的変数の値がわかりません.
わからないから予測したいのですから笑
当然なんですけど,意外と見落とされがちです.
なんでこのことが見落とされがちなのかというと,ネット上によくある機械学習のチュートリアル記事(irisなど)の影響かなぁと思います.
そういう記事の多くは,未知データの目的変数の答えがわかったうえで,既知データからモデルを構築し,そこから算出した予測値と答えを比較するということをよくしています.
これはまったく悪いことではなく,実際,データ分析の実務でも未知データの目的変数の答えがわかっているのに,モデルを作成するということは結構あります.
ただ,一般的には目的変数の答えがわからないデータがあるから,答えがわかる既知データを利用して予測したいということを頭の片隅に置いておいてください.
3.既知データと未知データは同傾向である!!
これも実はかなり見落とされがちです.
未知データを予測する際の前提条件として,既知データと同傾向という暗黙のルールがあります.
だっていくら既知データの傾向をうまく学習できても,未知データが学習した傾向と違うのであれば得られる予測値も当然的外れのものになります.
英語の試験でいい点をとることが目的なのに数学しか勉強しなかったら,当然,英語の試験でいい点なんて取れないですよね?
英語の試験でいい点を取りたいなら,英語を勉強する必要があります(当たり前ですよね??笑)
もう少し違う例を考えてみます.
例えば,一般人とお相撲さんの体重と身長のデータがあったとしましょう.
既知データ:一般人
未知データ:お相撲さん
説明変数:体重
目的変数:身長
としたときにうまくお相撲さんの身長を予測できるでしょうか?
当然,うまくできるわけないですよね笑
データを見てみるとこんな感じで分布が分かれていました.
青色のデータから灰色のデータを予測することは難しいことがわかると思います.
なので,機械学習を用いる際は,既知データと未知データが同傾向か確かめて使用するようにしましょう!
4.1つ1つのレコードから予測値の確率分布が生成される!!
これは,常識というよりぜひ知っておいていただきたいのでこちらで紹介させていただきます.
今までモデルは,説明変数を適用することで,目的変数の予測値が算出されると説明してきました.
このことは間違いではないのですが,実は正確ではありません.
正確に言うと,
モデルは,説明変数を適用することで目的変数の予測値の確率分布が生成され,予測値はその確率分布の期待値である!!
です.
イメージでいうとこんな感じです.
こんな感じで説明変数にモデルを適用すると,それぞれのレコードに対し,目的変数の予測値の確率分布を生成します.
そして,その確率分布の期待値を予測値として算出しているのです.
これは正直,今回の予測モデリング講座上はそこまで重要なことではないのですが,アルゴリズムの数式を考えるときに非常に重要となる考え方なので紹介させていただきました.
もう少しだけ難しい話をすると機械学習は,この確率分布の分散を限りなく0に近づけようとします.
分散が0に近いと,ほぼ確実に確率分布の期待値が生成されることになるので,それを予測値としているのです.
このように考えると一見ブラックボックスに見えるアルゴリズムの数式も明確にわかることが多いのです.
アルゴリズムの数式については需要があればやりますね笑
ここは,ちょっと難しい考え方かもしれないので,わかる人だけでOKです.
まとめ
今回は予測モデリングの常識ということで当たり前のように見えるが,意外と見落としがちなところに焦点を当てました.
- 品質の低いデータからは品質の低い結果しか生まれない!!
- 未知データは目的変数の値がわからない!!
- 既知データと未知データは同傾向である!!
- 1つ1つのレコードから予測値の確率分布が生成される!!
どれも指摘されれば当たり前かも知れませんが,意外と見落としがちなのでこれを機にぜひ再確認してみてくださいね!
さてこれで機械学習講座は終了です,お疲れ様でした!!
正直,これだけだとよくわからないですよね笑
機械学習に限らずデータサイエンスの分野は理論を勉強するだけではよくわからないです.
理論をPythonやRで実際にコーディングすることで初めて心の底から理解することができるのです.
ということで,次は実際にコーディングしていきましょう!
それでは,お疲れさまでした!!