回答:
CVがネストされている場合、つまり、CV を使用するかどうかにかかわらず、すべての最適化、機能選択、モデル選択が1つの大きなCVにラップされている場合、これは問題になりません。
これは、追加の検証セットを持つことと比較してどうですか?検証セットは通常、データ全体からランダムに選択された大体の部分ですが、CVの1回の反復に相当します。このため、幸運にも不運にも選択された、またはチェリーピックされた検証セットによって簡単に偏らせることができるため、実際にはより悪い方法です。
これの唯一の例外は、オブジェクトの順序が重要な時系列データおよびその他のデータです。ただし、どちらの場合も特別な処理が必要です。
主な理由は、k-fold cross-validation推定器の分散が単一のホールドアウトセット推定器よりも小さいためです。これは、利用可能なデータ量が限られている場合に非常に重要になる可能性があります。データの90%がトレーニングに使用され、10%がテストに使用される単一のホールドアウトセットがある場合、テストセットは非常に小さいため、データの異なるサンプルのパフォーマンス推定値には多くのばらつきがあります。または、データのさまざまなパーティションに対して、トレーニングセットとテストセットを形成します。k倍の検証では、k個の異なるパーティションで平均化することでこの分散を削減します。そのため、パフォーマンスの推定値はデータのパーティション化の影響を受けにくくなります。繰り返しk分割交差検証を行うと、さらに進んで、データの異なるパーティションを使用して交差検証が実行され、k個のサブセットが形成されます。
ただし、モデルの適合手順のすべての手順(モデルの選択、機能の選択など)は、相互検証手順の各フォールドで独立して実行する必要があります。
[コメントに照らして編集]
CVの結果を使用して複数のモデルから選択する場合、問題があると思います。
CVを使用すると、データセット全体を使用して1つのモデル/メソッドのトレーニングとテストを行うことができ、一般化の程度について合理的なアイデアを得ることができます。しかし、複数のモデルを比較している場合、私の本能は、モデル比較がCVが提供する余分なレベルのトレインテスト分離を使い果たすため、最終結果は選択したモデルの精度の妥当な推定値ではないことです。
したがって、複数のモデルを作成し、そのCVに基づいて1つを選択すると、見つけたものについて過度に楽観的になっていると思います。勝者がどれだけ一般化するかを確認するには、別の検証セットが必要です。
私の経験では、主な理由は通常、十分なサンプルがないことです。
私の分野(生物学的/医療サンプルの分類)では、テストセットが個別に保持されることもありますが、多くの場合、少数のケースのみで構成されます。その場合、通常、信頼区間は広すぎて使用できません。
繰り返し/反復クロス検証またはブートストラップ外検証のもう1つの利点は、多数の「代理」モデルを構築できることです。これらは等しいと見なされます。そうでない場合、モードは不安定です。サロゲートモデル自体または異なるサロゲートモデルが同じケースに対して行う予測のいずれかを比較することにより、この不安定性を(いくつかのトレーニングケースの交換に関して)実際に測定できます。
Esbensen&Geladiによるこの論文は、相互検証のいくつかの制限について素晴らしい議論を提供します。
それらのほとんどを処理できますが、リサンプリング検証で対処できない重要な点の1つはドリフトです。これはmbqの点に関連しています。
これの唯一の例外は、オブジェクトの順序が重要な時系列およびその他のデータです
ドリフトとは、たとえば機器の応答/真のキャリブレーションが時間とともにゆっくりと変化することを意味します。したがって、未知の場合の一般化エラーは、未知の将来の場合と同じではない場合があります。検証中にドリフトが見つかった場合は、「毎日/毎週/再キャリブレーションをやり直す」などの指示に到達しますが、これにはトレーニングデータよりも後に体系的に取得したテストセットが必要です。
(実験が加速的に計画されている場合、取得時間を考慮した「特別な」分割を行うことができますが、通常、これはドリフト検出のためにテストしたい時間をカバーしません)