とこんな風に、「データ分析」について学ぶほどに、その深みにはまっている感じだ。John Lennon の言葉を借りれば The more I see the less I know for sure, 楽しいけどね (^^)b
Overfitting(当てはまり過ぎ)て何?
Foster Provost, Tom Fawcett 著 Data Science for Business の第5章 Overfitting and Its Avoidance は、既に3回以上は読んだ。本章を最初に読んだ時は「overfitting て何となく分かるけど...」という感じで消化不良だった。そして、何度も読み返す日々...。
Data Science for Business: What You Need to Know about Data Mining and Data-Analytic Thinking
posted with amazlet at 17.02.24
O'Reilly Media (2013-07-27)
原書はとにかく素晴らしいが、日本語訳版のことは知りません。
Foster Provost Tom Fawcett
オライリージャパン
売り上げランキング: 22,226
オライリージャパン
売り上げランキング: 22,226
「分析モデル評価:序章」の最後で overfitting に触れ、本章を読んでいたので、直ぐに overfitting について書き始めたが、どうしても書き進められなかった。overfitting が「当てはまり過ぎのモデル」と概念的には分かるが、「何故ダメなのか?」が自分なりの言葉で書けないのだ。overfitting なんて、先日書いた「データ分析の落し穴:因果と相関」なんかよりずっと簡単そうに思ったが、考えるほどに分からなくなった。
こんなときは、明らかに「理解不足」で、何度も読み返すしかない。漠然としたイメージを、紙と鉛筆に殴り描きもしながら、徐々に理解を深めていった。そして、「overfitting が何故ダメなのか?」は、何度目かに読んだ以下の「Example: Why Is Overfitting Bad?」の冒頭から「スッと」理解できた。
Why does performance degrade? The short answer is that as a model gets more complex it is allowed to pick up harmful spurious correlations. These correlations are idiosyncracies of the specific training set used and do not represent characteristics of the population in general. The harm occurs when these spurious correlations produce incorrect generalizations in the model. This is what causes performance to decline when overfitting occurs. P.124つまり
モデルが複雑になればなるほど、母集団の一般的な特徴とは違いすぎるデータを反映するようになる
ここでは本章を元に「overfitting が何故ダメか?」を整理してみた。「overfitting て何?」は、意外と説明しにくいものだが、overfitting の理解なしには適切なデータ分析はあり得ない。「overfitting て何?」「何故、回避すべきなのか? 」の疑問の答えは、「分析モデルとは?」や「良い分析モデルて何?」の答えと重なるようだ。
どちらのモデルが好ましい?
左の表は、Class c1 と c1 に分類された8つのサンプリングデータで、x と y の属性を持つ。問題:class 分けの指標として x と y では、どちらが適切か?
答え:x
理由:x が p の場合 75%の確率で c1 に分類、x が q の場合 75%の確率で c2 に分類(y が r の場合 75%の確率で c1 に分類、y が r の場合 50%の確率で c2 に分類)。
この理由を図解したのが以下の図5-8 (a)のツリー図。
方や (b) のモデル(ツリー図)は、(a) の条件「x = p」に続けて「y = r」を加えたもので、c1 の分類が100%の正確さになっている。
さて、 (a) と (b) のモデルでは、どちらがモデルとして好ましいか? つまり、「x = p の場合で更に y = r の場合は常に c1」という (b) モデルは、「x = p の場合は c1」の (a) モデルよりも、分類のモデルの精度は高いと言えるのだろうか?
このサンプリングデータにおいて、(b) の方が精度は高いが、母集団において常に「x = p の場合で更に y = r の場合は常に c1」と結論付けるのは、直感的にも overfitting と分かる。つまり (b) モデルは、少ないサンプルデータだけに対応し過ぎの「やり過ぎなモデル」。
直線回帰分析の場合
本書の「Example: Overfitting Linear Functions」(P.119) から、直線回帰分析における overfitting の例を引用する。
図5-4 (P.120) は、ロジスティック回帰分析と SVM(Support Vector Machine)の二本の回帰直線が重なっている状態で、白丸と黒丸のグループを完璧に分類できている状態。
図5-7 (P.122) では、星印の白丸が、他の白丸の集団と大きく離れた地点に追加された場合の、二本の回帰直線を示している。
ロジスティック回帰直線の方が、SVM直線より大きく傾きが変わっている。これは、このロジスティック回帰分析モデルが、外れ値(星印の白丸)に反応しやすいことを示す。方や このSVM分析モデルは、外れ値にそれほど反応していない。
よってこの場合は、このロジスティック回帰モデル方が overfitting の可能性は高いと考えられる。
判定方法はない
とはいえ
No general analytic way to determine in advance whether a model has overfit or not. P.126
モデルが overfitting しているか否かを判定する一般的な方法はない。
判定する方法はないが、サンプリングデータの取り方、サンプリングデータの利用の仕方(Cross-Vlidation 交差検証)で overfitting の回避方法はある。
大量のサンプリングデータがあることに越したことはないが、データ収集に費用や時間をかけられない場合が普通だ。その場合、限られたデータで overfitting を回避する方法については、本書の「From Holdout Evaluation to Cross-Validation」(P.126) が非常に分かりやすい。ここでは、図5-9 を引用するに止める。
「分析モデル評価:Overfitting & Generalization」に続く。






0 件のコメント:
コメントを投稿