医療データ奮闘記

公衆衛生大学院に入った内科系専門医が医師として培った現場感と大学院で培った統計の知識を交えながら、医療や疫学や統計に関する素朴な疑問や本音をつらつら書いています。

なぜロジスティック回帰分析では検証とか言われないのに機械学習ではとやかく言われるのか (バイアスバリアンストレードオフ

最近、世間的にも人工知能一般に関する認識が変わってきて、AIといった抽象的な言葉から機械学習という言葉に移り変わりつつあるようである。

tjo.hatenablog.com

確かに自分に当てはめて考えると、ある程度専門的な知識を有している人と話す時は「機械学習」と言っているし、そういった統計学的な事に日常触れていなさそうな人には「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をある程度犠牲にすれば、モデルは単純になるが大雑把にはあっているモデルになる。

f:id:yiliaojingji:20190706220910p:plain
biasvariancetradeoff_1

上図のようなデータがある時に、どのような線を引くかという問題である。もともとのデータは真ん中のような二次関数である。

  • 単純なモデル(左下):例えばロジスティック回帰などは一番左のような直線を引く。これだと細かい事を考えれば間違いだらけだが、大まかな方向性は間違えないだろう。

  • 複雑なモデル(右下):機械学習のような複雑なモデルでは一番右のような曲線を引く事ができる。しかし少しデータを増やしてみると様々な直線の形が変わる事になる。

どちらが良いかはケースバイケースで目的にも依るが、現場感がないままに解析するとだいたい何か間違える、という根拠にもなる気がする。

今回は単変量なので散布図を書けばすぐにわかるが、これが多変量になると散布図をみてもなかなか気づきにくいと思う。

ちなみに筆者は36万以上のデータで説明変数50個くらいを使って検証すると、ロジスティック回帰がほとんどのモデルより(勾配ブースティングを除き)精度が高かったという学会発表をした事がある。


  1. というか正直解析していると、おそらく未測定交絡因子の影響だろうが、チューニングしてもtestデータではロジスティック回帰の方が機械学習よりよっぽど良い予測をしてたりするのだが、理解してもらなかったのでこのような文章を書こうと思った。。