「Kaggle Grandmasterに学ぶ 機械学習 実践アプローチ」という書籍を読んだ。Kaggle グランドマスターがどういう風に分析をしているんだろうという点に興味を持って読んでみたのだけど、意外に普通のことが書かれていて拍子抜けしてしまった。どうも Kaggle グランドマスター という煽り文句は日本語版で付けられただけのものらしい。うーむ、実際にすごい人がどういう手順で思考しているのかを知りたかったんだけど。
本書で説明される機械学習の流れは以下のようになっている。
- 現実を(質的変数化するなどして)データに変換する
- データを正規化、合成、変換して有用な特徴量を作り出す
- 不要な特徴量を排除する
- モデルを構築し最適化する
- モデルを評価する
この流れ自体は統計学でも同じように見える。とはいえ、細かく見ていくと統計学と機械学習のアプローチの違いというものがあることもはっきりと見て取れる。
1~3については統計学でも機械学習でも同じようなものに思えるが、統計学では5に、機械学習では4により重点が置かれているように見える。
統計学ではモデルの評価にはp値やAICに代表される統計的検定を使うが、機械学習においては交差検証+評価指標が一般的に使われているようだ。統計学では因果関係に重きが置かれるため、モデルとデータが矛盾しないかが重要なのに対し、機械学習においては予測に重きが置かれるため、過学習しなければよいという発想に立っているのかもしれない。
データの2度漬け防止という意味では交差検証の方がより好ましい方法には思えるのだが、なぜ統計学では使われないのだろう。
気温の高さ→アイスクリームの売上、気温の高さ→溺死者の数のように上流の共通の要因が原因であり因果関係でないことが明らかであっても、アイスクリームの売上から溺死者の予測ができるのであれば問題はない。因果関係を重視するのか予測を重視するのかで手法に差があると考えることもできるが、根拠が思いつかず正直よくわからない。
ちょっと面白かったのは、評価に関して決定係数よりも重み付きカッパ係数とかマシューズ相関係数を使った方がいいという話が書いてあった。決定係数がいまいちなのは事実だけど、普通は自由度調整済み決定係数を使えという話になるのだと思うので、どういうメリットがあるのか興味がある。時間があったら調べてみたい。