教師あり機械学習モデルが過剰適合であるかどうかを判断する方法は?


27

教師付き機械学習モデルが過剰適合であるかどうかを判断する方法を教えてもらえますか?外部検証データセットがない場合、10倍交差検証のROCを使用してオーバーフィットを説明できるかどうかを知りたいです。外部検証データセットがある場合、次に何をすべきですか?

回答:


29

要するに:モデルを検証することによって。検証の主な理由は、オーバーフィットが発生していないことを表明し、一般化されたモデルのパフォーマンスを推定することです。

オーバーフィット

まず、実際に過適合とは何かを見てみましょう。モデルは通常、トレーニングセットの損失関数を最小化することにより、データセットに適合するようにトレーニングされます。ただし、このトレーニングエラーを最小化してもモデルのパフォーマンスが向上せず、特定のデータセットのエラーのみが最小化されるという制限があります。これは、本質的には、モデルがトレーニングセットの特定のデータポイントにぴったりと適合しすぎて、ノイズに起因するデータのパターンをモデル化しようとしていることを意味します。この概念はoverfitと呼ばれます。オーバーフィットの例が下に表示され、黒でトレーニングセットが表示され、バックグラウンドで実際の母集団からのより大きなセットが表示されます。この図では、青のモデルがトレーニングセットにぴったりと適合しており、基になるノイズをモデリングしていることがわかります。 ここに画像の説明を入力してください

モデルが過剰適合であるかどうかを判断するには、モデルが将来のデータで持つ一般的なエラー(またはパフォーマンス)を推定し、トレーニングセットでのパフォーマンスと比較する必要があります。このエラーの推定は、いくつかの異なる方法で実行できます。

データセットの分割

一般化されたパフォーマンスを推定する最も簡単なアプローチは、データセットを3つの部分(トレーニングセット、検証セット、テストセット)に分割することです。トレーニングセットは、モデルをトレーニングしてデータに適合させるために使用され、検証セットは、モデル間のパフォーマンスの違いを測定して最適なものを選択するために使用され、テストセットは、モデル選択プロセスが最初の2セット。

オーバーフィットの量を見積もるには、最後のステップとしてテストセットで関心のあるメトリックを評価し、トレーニングセットでのパフォーマンスと比較します。ROCについて言及しますが、私の意見では、モデルのパフォーマンスを確保するために、たとえばブライアスコアやキャリブレーションプロットなどの他のメトリックも検討する必要があります。もちろんこれはあなたの問題次第です。多くのメトリックがありますが、これはここのポイントの外です。

この方法は非常に一般的で尊敬されていますが、データの可用性に大きな需要があります。データセットが小さすぎる場合、多くのパフォーマンスを失う可能性が高く、結果はスプリットに偏ります。

交差検証

データの大部分を検証とテストに浪費する回避方法の1つは、モデルのトレーニングに使用されるのと同じデータを使用して一般化されたパフォーマンスを推定する相互検証(CV)を使用することです。交差検証の背後にある考え方は、データセットを一定数のサブセットに分割し、残りのデータを使用してモデルをトレーニングしながら、これらの各サブセットを順番にテストセットとして使用することです。すべてのフォールドのメトリックを平均すると、モデルのパフォーマンスの推定値が得られます。その後、最終モデルは通常、すべてのデータを使用してトレーニングされます。

ただし、CV推定値は不偏ではありません。しかし、使用するフォールドの数が多いほど、バイアスは小さくなりますが、代わりに大きな分散が得られます。

データセット分割の場合と同様に、モデルのパフォーマンスの推定値を取得し、オーバーフィットを推定するには、CVのメトリックをトレーニングセットのメトリックの評価から取得したメトリックと単純に比較します。

ブートストラップ

ブートストラップの背後にある考え方はCVに似ていますが、データセットを部分に分割する代わりに、置換を使用してデータセット全体からトレーニングセットを繰り返し描画し、これらの各ブートストラップサンプルで完全なトレーニングフェーズを実行することにより、トレーニングにランダム性を導入します。

ブートストラップ検証の最も単純な形式は、トレーニングセットにないサンプル(つまり、除外されたサンプル)のメトリックを単純に評価し、すべての繰り返しにわたって平均します。

この方法により、モデルのパフォーマンスの推定値が得られます。ほとんどの場合、CVよりもバイアスが低くなります。繰り返しますが、トレーニングセットのパフォーマンスと比較すると、オーバーフィットになります。

ブートストラップ検証を改善する方法があります。.632+メソッドは、オーバーフィットを考慮して、一般化モデルのパフォーマンスのより良い、より堅牢な推定値を提供することが知られています。(興味がある場合は、元の記事を読んでください:クロス検証の改善:632+ブートストラップメソッド

これがあなたの質問に答えることを願っています。モデルの検証に興味がある場合はオンラインで自由に利用できる「データ学習、推論、予測:統計学習の要素」という本検証に関する部分を読むことをお勧めします。


2
検証とテストの用語がすべてのフィールドで守られているわけではないことに注意してください。たとえば、私の分野(分析化学)の検証は、モデルが適切に機能することを証明する(および機能するかどうかを測定する)手順です。これは最終モデルで行われ、その後の変更は許可されません(または、変更する場合は、独立したデータで再度検証する必要があります)。したがって、検証セットを「内部テストセット」または「最適化テストセット」と呼びます。「外側の」テストデータはオーバーフィットを防止しませんが、オーバーフィットの程度を測定するために使用できます。
cbeleitesはモニカをサポートします14

わかりました、私はあなたの分野で経験がありません。説明をありがとう。他の分野でもおそらく同じです。最後にリンクした本で使用されている用語を使用しました。私はそれがあまりにも混乱しないことを願っています。
しばらく

7

オーバーフィッティングの範囲を推定する方法は次のとおりです。

  • 内部エラーの見積もりを取得します。resubstitutio(=トレーニングデータの予測)、またはハイパーパラメーターを最適化するために内部クロス「検証」を行う場合、その測定も重要です。
  • 独立したテストセットのエラー推定値を取得します。通常、リサンプリング(反復相互検証またはout-of-bootstrap *が推奨されます。ただし、データリークが発生しないように注意する必要があります。つまり、リサンプリングループは、複数のケースにわたる計算を持つすべてのステップを再計算する必要があります。センタリング、スケーリングなどの処理ステップ。また、たとえば同じ患者の繰り返し測定などの「階層」(「クラスタ化」とも呼ばれる)データ構造がある場合は、最高レベルで分割してください(=> 患者の再サンプリング)。
  • 次に、「内部」エラー推定値が独立した推定値よりもどれだけ良く見えるかを比較します。

例は次の
過剰適合
とおりです。Trefferrate=ヒット率(%正しい分類)、Variablenzahl =変数の数(=モデルの複雑さ)
Symbols :。再置換、+ハイパーパラメーターオプティマイザーの内部leave-one-out推定、o患者レベルで独立した外部相互検証

これは、ROC、またはブライアーのスコア、感度、特異性などのパフォーマンス指標で機能します...

*ここでは.632または.632+のブートストラップはお勧めしません。それらは既に再置換エラーに混じっています。再置換とブートストラップ外の推定値から後で計算することができます。


0

過剰適合は、統計的パラメーター、したがって、得られた結果を、ランダムな方法で得られなかったことを確認せずに有用な情報として考慮することの直接的な結果です。したがって、過剰適合の存在を推定するために、実際のデータベースと同等であるがランダムに生成された値を持つデータベースでアルゴリズムを使用する必要があります。 。この確率が高い場合、過剰適合状態にある可能性が最も高くなります。たとえば、4次多項式が1の相関を持ち、平面上の5つのランダムな点を持つ確率は100%であるため、この相関は役に立たず、過剰適合状態にあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.