なぜロジスティック回帰分析では検証とか言われないのに機械学習ではとやかく言われるのか (バイアスバリアンストレードオフ
最近、世間的にも人工知能一般に関する認識が変わってきて、AIといった抽象的な言葉から機械学習という言葉に移り変わりつつあるようである。
確かに自分に当てはめて考えると、ある程度専門的な知識を有している人と話す時は「機械学習」と言っているし、そういった統計学的な事に日常触れていなさそうな人には「AI」と表現していることに気がついた。
統計学的な事に日常触れていなさそうな人に機械学習と言うと、なんとなく深層学習deep learningの事を連想されるからである。
じゃあ何を理解している人には機械学習と表現して議論するかというと、bias variance tradeoffとノーフリーランチ定理の二つではないかと考えた。
機械学習は統計学の延長であると解釈しているのだが、その際にバイアスバリアンストレードオフ(bias variance tradeoff)もしくは過学習をどのように避けるかは非常に重要な理解である1。
scikit-learn.org https://www.jclinepi.com/article/S0895-4356(18)31081-3/abstract#
bias variance tradeoff
自分の理解を簡単に言うと、
モデルのvarianceを重視すれば、複雑なモデルは作れるがデータの誤差も拾ってしまう。
モデルのvarianceをある程度犠牲にすれば、モデルは単純になるが大雑把にはあっているモデルになる。
上図のようなデータがある時に、どのような線を引くかという問題である。もともとのデータは真ん中のような二次関数である。
単純なモデル(左下):例えばロジスティック回帰などは一番左のような直線を引く。これだと細かい事を考えれば間違いだらけだが、大まかな方向性は間違えないだろう。
複雑なモデル(右下):機械学習のような複雑なモデルでは一番右のような曲線を引く事ができる。しかし少しデータを増やしてみると様々な直線の形が変わる事になる。
どちらが良いかはケースバイケースで目的にも依るが、現場感がないままに解析するとだいたい何か間違える、という根拠にもなる気がする。
今回は単変量なので散布図を書けばすぐにわかるが、これが多変量になると散布図をみてもなかなか気づきにくいと思う。
ちなみに筆者は36万以上のデータで説明変数50個くらいを使って検証すると、ロジスティック回帰がほとんどのモデルより(勾配ブースティングを除き)精度が高かったという学会発表をした事がある。