オーバーフィッティングとアンダーフィッティングの直感的な意味を理解しています。では、トレーニング データに基づいてトレーニングされた特定の機械学習モデルが与えられた場合、トレーニングがデータをオーバーフィットしたかアンダーフィットしたかをどのように判断できますか? これらの要因を測定する定量的な方法はありますか?
エラーを見て、オーバーフィットかアンダーフィットかを判断できますか?
オーバーフィッティングとアンダーフィッティングの直感的な意味を理解しています。では、トレーニング データに基づいてトレーニングされた特定の機械学習モデルが与えられた場合、トレーニングがデータをオーバーフィットしたかアンダーフィットしたかをどのように判断できますか? これらの要因を測定する定量的な方法はありますか?
エラーを見て、オーバーフィットかアンダーフィットかを判断できますか?
最も簡単な方法は、2 セットのデータを用意することだと思います。トレーニング データと検証データ。トレーニング データでのモデルの適合度が検証データでのモデルの適合度に近い限り、トレーニング データでモデルをトレーニングします。モデルの適合度がトレーニング データでは増加しているが、検証データでは増加していない場合は、過剰適合しています。
通常の方法は、相互検証として知られていると思います。アイデアは、トレーニング セットをフォールドと呼ばれるいくつかの部分に分割し、評価のために一度に 1 つを選択し、残りのものをトレーニングすることです。
もちろん、実際のオーバーフィッティングやアンダーフィッティングを測定するわけではありませんが、正則化項を変更するなどしてモデルの複雑さを変えることができれば、最適な点を見つけることができます。これは、トレーニングとテストだけで行ける範囲だと思います。
トレーニングデータのエラーを確認するのではなく、検証データのみを確認します。
テストの一般的な方法は、さまざまなモデルの複雑さを試して、モデルの複雑さによって誤差がどのように変化するかを確認することです。通常、これらは典型的な曲線を持っています。最初は、エラーはすぐに改善されます。その後、飽和状態になり (モデルが適切な場合)、再び減少し始めますが、これはモデルが優れているからではなく、過剰適合が原因です。プラトーの複雑さの低い端、合理的な一般化を提供する最も単純なモデルになりたいと考えています。
既存の回答は厳密に言えば間違っているわけではありませんが、完全ではありません。はい、検証セットが必要ですが、ここで重要な問題は、検証セットのモデル エラーを単純に見て、それを最小化しようとしないことです。そのように検証セットに効果的に適合するため、それはすべて同じように過剰適合につながります。正しいアプローチは、セットのエラーを最小限に抑えることではなく、使用するトレーニング セットと検証セットに依存しないエラーを作成することです。検証セットのエラーが大幅に異なる場合 (それが悪いか良いかは問題ではありません)、モデルはオーバーフィットです。また、確かに、ランダム セットでトレーニングしてから別のランダム セットで検証する場合、これはクロス検証の方法で行う必要があります。