過剰適合モデルは必ずしも役に立たないでしょうか?


25

モデルのトレーニングデータの精度は100%、テストデータの精度は70%と仮定します。このモデルについて次の議論は真実ですか?

これが過剰適合モデルであることは明らかです。オーバーフィッティングを減らすことで、テストの精度を高めることができます。しかし、このモデルはテストデータに対して許容可能な精度を持っているため、依然として有用なモデルである可能性があります。


17
特定のアプリケーションで70%が受け入れられる場合、私はあなたに同意します。
リチャードハーディ

6
@RichardHardyに完全に同意します。たとえば、ランダムフォレストを考えてみましょう。多くの場合、構造上、インサンプルパフォーマンス(out-of-bagのパフォーマンスではない)は100%に近く、ひどくオーバーフィッティングです。それでも、アウトオブバッグまたはテスト/検証セットで評価されたパフォーマンスの低下は、有用なモデルにするのに十分高い可能性があります。
マイケルM

1
@Metariatどうして?この精度は、トレーニングフェーズでは使用されないテストセットで取得されました。
ホセイン

3
@Metariat、そのような議論は、統計的実践のほとんど、たとえば、標準線形モデルのOLS推定量、サンプル平均が仮説値と等しいかどうかの取り除けます。興味深いのは、引数がトレーニングサンプルのオーバーフィットに依存していないことです。アンダーフィットモデルおよび一般的なモデルにも適用されます。それは間違っていますか?t
リチャードハーディ

4
私はそのモデルをオーバーフィットとは呼びません。検証パフォーマンスとテストパフォーマンスを比較するオーバーフィットモデルが確立されます。それでも、テストのパフォーマンスが許容範囲を大幅に下回った場合にのみ、場合によっては壊滅的になります。トレーニングのパフォーマンスには意味がありません。
ファイアバグ

回答:


32

引数は正しいと思います。特定のアプリケーションで70%が許容できる場合、モデルはオーバーフィットしてい便利です(より一般的には、オーバーフィットしているかどうか関係なく)。

オーバーフィッティングとアンダーフィッティングのバランスをとることは最適性(最適なソリューションを探す)に関係しますが、満足のいくパフォーマンスを得るということは十分です(モデルはタスクに対して十分なパフォーマンスを発揮しますか?)。モデルは最適でなくても十分に優れている場合があります。

編集: OPでのFirebugとMatthew Druryのコメントの後、検証パフォーマンスが問題になる可能性があることを知らずにモデルがオーバーフィットしているかどうかを判断するために追加します。Firebugでは、検証とテストパフォーマンスを比較して、過剰適合の量を測定することをお勧めします。それにもかかわらず、モデルがテストセットで100%の精度を提供せずにトレーニングセットで100%の精度を提供する場合、それは過剰適合の可能性の指標です(特に回帰の場合はそうですが、必ずしも分類ではありません)。


あなたは例を求めました:stats.stackexchange.com/a/273930/2958にあるアイリスデータセットのニューラルネットのコードを取得し、次にset.seed(100)、ここで説明する現象とset.seed(15)その逆の説明を試みます。「オーバーフィッティングの可能性の指標」と言う方がいいでしょう
ヘンリー

モデルがトレインとテストの両方で100%の精度を達成することは可能ですか?
リカ

1
@Breeze、別のスレッドでこれを尋ねることができると思います(必要に応じてコンテキストのためにこのスレッドにリンクします)。
リチャードハーディ


25

クレジットカードの不正検出に関する私の過去のプロジェクトでは、不正なケースを記憶するために、データ/ハードコードを意図的に過剰に適合させたいと考えています。(1つのクラスの過剰適合は、OPが述べた一般的な過剰適合の問題とはまったく異なります。)そのようなシステムは、比較的低い誤検知を持ち、ニーズを満たします。

したがって、過剰適合モデルはいくつかの場合に役立つ可能性があります。


5
この答えは、ユースケースを提示するため、非常に興味深いものです。「覚えておくためにハードコードされている」とは、@ hxd1011はモデルによって、報告された各詐欺ケースが「詐欺フラグ」につながること、およびそれらがスムースまたは補間されていないことを意味します。そのようなものですよね?
IcannotFixThis

@IcannotFixThisはい。実際、誤検知を制御するために他の多くの方法を試しました。しかし、不正なケースを過剰な方法で取り込もうとすると、うまくいきました。
ハイタオデュ

3
ββ

3
それは迷惑かもしれませんが、悪意のある誰かがあなたのカード情報を手に入れたので、あなたの財政を破滅させるよりも何千倍も迷惑ではありません。
マシュードゥルーリー

12

たぶん:注意してください。70%の精度(ただし測定する場合)で十分だと言うとき、エラーはランダムまたは均等に分散していると考えているように感じます。

しかし、オーバーフィッティングの見方の1つは、モデルテクニックがトレーニングセットの癖に注意を払いすぎた場合に発生するということです。これらの癖を共有する一般集団の被験者は、非常に不均衡な結果になる可能性があります。

そのため、トレーニングデータに特定の癖があるため、すべての赤犬にがんがあるというモデルになります。または、24歳から26歳までの既婚者は、不正な保険金請求を行うことがほぼ保証されています。70%の精度では、モデルが過剰適合であるため、被験者のポケットが100%間違っている余地が多く残ります。

(過剰適合ではないということは、間違った予測のポケットがないことを保証するものではありません。実際、適合不足モデルには悪い予測のスワスがありますが、過剰適合では、トレーニングデータの癖の影響を拡大していることがわかります)


ありがとう。この70%の精度は、テストデータでも利用できるトレーニングデータの癖で得られる可能性があるということですか?テストデータの精度に基づいて判断することはできませんか?テストデータで利用できるトレーニングデータの癖は、トレーニング中に学習する必要があると思います。
ホセイン

1
私があなたを理解していれば、それは逆になります:癖に過剰適合していることで、あなたの訓練の精度が高くなっています。テストの精度が低くなるのは、これらの癖がデータセット全体に適用されないためです。しかし、もちろん、トレーニングとテストのセットは、クロスバリデーションを行う場合でも役立ちますが、それは母集団に関しては風変わりです。その場合、テスト/検証結果は、実際のパフォーマンスを十分に予測できません。
ウェイン

人口に関してテストセットが風変わりである可能性があることは正しいですが、これは過剰適合モデルに固有のものではありません。私たちの評価はすべてそれに苦しみ、真の母集団のプロキシとしてテストセットに依存する以外に選択肢はありません。
ホセイン

確かに、オーバーフィットモデルに固有のものではありませんが、オーバーフィットモデルで増幅されます。定義上、モデルは過剰適合であると言いたいのは、それが明らかに癖を強調しすぎているからです。
ウェイン

7

いいえ、役に立つことはありませんが、目的によって異なります。いくつかのことが思い浮かびます。

  1. Fββ1

  2. このような分類子は、アンサンブルで本当に役立ちます。通常の重みを持つ分類器、TPRをオーバーウェイトする分類器、FNRをオーバーウェイトする分類器を1つ持つことができます。そうすれば、単純な3則の投票、つまり平均化でさえ、単一の最良分類器よりも優れたAUCを提供します。各モデルが異なるハイパーパラメーター(またはサブサンプリングされたトレーニングセット、またはモデルアーキテクチャ)を使用する場合、オーバーフィットからアンサンブルをある程度購入します。

  3. 同様に、リアルタイムのスパム対策、詐欺対策、クレジットスコアリングの場合、分類子の階層を使用することは問題ありません。レベル1分類子は非常に高速に評価する必要があり(ミリ秒)、高いFPRを使用しても問題ありません。彼らが犯す間違いは、より正確で、十分な機能を備えた、より低速で高レベルの分類子または最終的に人間のレビュー担当者によってキャッチされます。明らかな例:2013年の「ホワイトハウス爆弾攻撃が3人を殺す」などのTwitterアカウント乗っ取りによる偽ニュースの見出しが、投稿から数ミリ秒以内に10億ドルの取引に影響を与えないようにします。レベル1分類子がスパムに対して陽性であることを示すことは問題ありません。センセーショナルだが未検証のニュースレポートの真実/虚偽を(自動的に)判断するのに少し時間がかかるようにしましょう。


2

過剰適合モデルがまだ有用であることを否定していません。ただし、この70%が誤解を招く情報になる可能性があることに留意してください。どのようなモデルが有用であるかどうかを判断するために必要なのであるサンプル外のエラーないテストエラー我々はそれが盲目テストセットを使用して推定する必要がありますので、(サンプル外のエラーが知られていません)、そしてその70%はほとんど良い近似ではありません。

@RichardHardyのコメントの後、用語の同じページにいることを確認するために、ブラインドテストセットにモデルを適用するときに得られるエラーとしてテストエラーを定義しましょう。そして、サンプル外エラーは、母集団全体にモデルを適用するときのエラーです。

サンプル外エラーの近似値は、モデル自体とデータの2つのことに依存します。

  • 「最適な」モデルは、データにほとんど依存しない(テスト)精度をもたらします。この場合、これは適切な近似になります。データに関係なく、予測エラーは安定しています。

  • ただし、オーバーフィットモデルの精度はデータに大きく依存します(トレーニングセットで100%、他のセットで70%を述べたように)。そのため、別のデータセットに適用すると、精度が70%未満(またはそれ以上)になり、予想外の結果になる可能性があります。言い換えれば、その70%があなたがそれが何であると信じているかをあなたに語っていますが、そうではありません。


1
70%の精度を得る使用済みテストセットはトレーニングフェーズでは見られないため、サンプル外エラーの適切な推定ではないでしょうか?トレーニングエラー(100%)とテストエラー(70%)の違いは、サンプル外エラーとテストエラーの違いを示す良い指標ではないと思います。オーバーフィットモデルは、実世界では70%の精度で実行され、トレーニングデータでは100%の精度で実行される可能性があります。トレーニングデータはモデルの生成に使用されますが、トレーニング中にテストデータは表示されないため、トレーニングエラーはテストエラーよりも小さいと予想されます。
ホセイン

5
検証セットとテストセット、およびそれぞれのエラーを混同していると思います。テストエラーがあるサンプル外のエラー。一方で、検証エラーが選択されているモデルの楽観的な尺度である、テスト・エラーではありません。テスト・エラーは、モデルが同じ母集団からの新しいサンプルで実行する方法の不偏推定値です。テストエラーの分散を見積もることができるので、テストセットが小さすぎない限り、テストエラーのみを知ることで問題ありません。@Hossein
リチャードハーディ

3
サンプル外れエラーとテストエラーの違いについて詳しく説明してください。私の理解では、どちらもモデルのトレーニングに使用されていないサンプルにモデルを適用するときに見られるエラーです。私が見ることができる唯一の可能な違いは、時系列データを使用する場合です。サンプル外のデータは後の時点からのものでなければなりませんが、この質問はそれについて言及していません。
原子力王

1
私の観点からすると、テストエラーはモデルをブラインドセットに適用するときに得られるエラーです。これは、サンプル全体のエラーの近似であり、モデル全体をモデルに適用するときに得られるエラーです。そして、それは同じではなく、貴重な情報はサンプル外エラーです。また、モデルが過剰に適合している場合、テストエラーは安定せず、他のデータセットで悪いサプライズが発生する可能性があります。
-Metariat

4
@Metariat、あなたはテストエラーが推定であり、テストセットごとに異なる可能性があることは正しいです。ただし、前に述べたように、テストエラーが真のエラーを過小評価することを期待する理由はありません(平均してそうではありません)。そのため、十分な量のテストサンプルを取得することで、テストエラーを、目的の範囲で目的のレベルの信頼度でバインドできます。より現実的には、おそらく、回答を編集してテストエラーを定義し、テストエラーとサンプル外エラーを対比するときに意味を誤解しないようにする必要があります。
リチャードハーディ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.