k分割交差検定を使用する場合、テストセットが必要ですか?


21

私はk-fold検証について読んでいますが、それがどのように機能するかを確実に理解したいと思います。

ホールドアウト方法では、データが3つのセットに分割され、テストセットは最後にのみモデルのパフォーマンスを評価するために使用され、検証セットはハイパーパラメーターの調整などに使用されることを知っています。

k-foldメソッドでは、最後のテストセットを保持し、残りのデータのみをトレーニングとハイパーパラメーターチューニングに使用します。つまり、残りのデータをk分割し、トレーニング後の平均精度を使用します。各フォールドで(またはハイパーパラメーターを調整するために選択したパフォーマンスメトリック)?または、個別のテストセットをまったく使用せず、データセット全体をk分割するだけです(これが当てはまる場合は、k折りの平均精度を最終的な精度と見なすだけです)。


3
何をしたいかによって異なります。一般化されたパフォーマンス推定が必要な場合は、はい、モデルはこれまでに見たことのないデータをテストする必要があります。しかし、それは単一のホールドアウト反復である必要があるという意味ではなく、リサンプリングを使用して同じ目標を達成することができます。
Firebug

2
...これは、ハイパーパラメーターの最適化/モデルの調整に「検証」結果を使用するときは常に、その調整とは独立した検証の別の段階が必要であることを意味します。両方の段階で、たとえば、クロス検証またはホールドアウト(または、ブートストラップ外または...)を使用できます。CV + CVはあなたが言及した3セットのセットアップにリードアウト+ホールドを差し出す、ネストされたCVと呼ばれる
cbeleitesサポートモニカ

回答:


9

K-Foldメソッドでは、最後のテストセットを保持し、トレーニングとハイパーパラメーターチューニングにのみ残りのデータを使用します(つまり、残りのデータをk分割し、その後平均精度を使用します)ハイパーパラメーターを調整するために各フォールド(または選択したパフォーマンスメトリック)でトレーニングしますか?

はい。原則として、テストセットを使用してモデルを変更しないでください(ハイパーパラメーターなど)。

ただし、交差検証はハイパーパラメータチューニング以外の目的で使用される場合があります。たとえば、トレーニング/テストの分割が結果にどの程度影響するかを判断する場合です。


6
+1。ただし、クロス検証+テストセットの代替として、ネストされたクロス検証に言及することができます。
アメーバは、モニカーを復活させる

1
「ハイパーパラメータチューニング以外の目的で使用されることもあります」。たとえば、検証目的で相互検証を使用できます(=未知のケースをテストして一般化エラーを測定します)。
cbeleitesは、モニカをサポートします

3

通常、はい。基本的に、バイアスと分散のトレードオフについて話します。データを使用してモデル(トレーニングデータと検証データ)を構築し、異なるハイパーパラメーターを反復処理し、平均パフォーマンスメトリックを最大化しようとすると、モデルは示されているほど良くない場合があります。

ただし、特に小さなデータセットでは、追加の分割によりトレーニングセットがさらに小さくなり、モデルが不良になる可能性があります。


2
これは質問に対する本当の答えではありません。
マイケルR.チャーニック

これを拡張して、受け入れられた答えとかなり詳細なコメントに何かを追加できますか?
mdewey

1

理想的には、検証(モデル選択用)と最終テストを混在させないでください。ただし、k値が高い場合や、1つだけの場合は、テスト結果を使用してモデルの選択をガイドする方が害は少なくなります。このシナリオでは、アカデミックペーパーを作成している場合は、説明する必要がない限り実行しないでください。つまり、常に個別のテストセットが用意されています。実用的なプロジェクトを構築している場合は、そうしても構いません。

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