回答:
交差検定は、トレーニングサンプルとテストサンプルへのデータのいくつかのランダムパーティションを平均化することにより、サンプル外の精度を測定します。多くの場合、パラメーターのいくつかの(または多くの)可能な値に対して交差検証を行い、最小の交差検証平均誤差を与えるパラメーター値を選択することにより、パラメーターの調整に使用されます。
そのため、プロセス自体はモデルやパラメーターの推定値を提供しませんが、それを使用して代替案を選択することができます。
ジョナサンの答えに追加します。
ただし、パラメーター調整に相互検証を使用する場合、実際にはアウトサンプルがモデルの一部になります。したがって、最終モデルのパフォーマンスを正しく測定するには、別の独立したサンプルが必要です。
モデルパフォーマンスの測定に使用されるクロスバリデーションは、平均精度以上の
ものを測定できます。クロスバリデーションで測定できる2番目のことは、トレーニングデータの変化に対するモデルの安定性です。クロスバリデーションは、トレーニングされた多数の「代理」モデルを構築しますわずかに異なるトレーニングセット。モデルが安定している場合、これらの代理モデルはすべて同等です。トレーニングが不安定な場合、代理モデルは大きく異なります。たとえば、同じサンプルの異なるサロゲートモデルの予測の分散(反復/反復クロス検証)、またはサロゲートモデルのパラメーターの分散として、この「多くの変化」を定量化できます。
以前の回答に追加するために、最初から始めます。
モデルをトレーニングデータに過剰適合させる方法はいくつかありますが、明白な方法とそうでない方法があります。まず、最も重要なことは、トレーニングパラメーター(重み)のデータへの過剰適合です(ロジスティック回帰の曲線適合パラメーター、ニューラルネットワークのネットワーク重みなど)。次に、データのノイズをモデル化します。オーバーフィットすると、基礎となる生成関数をキャプチャするだけでなく、サンプルサイズとサンプルが母集団の完全な表現ではないという事実によるランダム性もキャプチャします。この過剰適合は、モデルの特定の属性(一般的な複雑さ)にペナルティを課すことにより、ある程度緩和できます。これは、トレーニングサンプルのパフォーマンスが大幅に改善されなくなったらトレーニングを停止し、ニューラルネットワークから一部のニューロンを削除することで(ドロップアウトと呼ばれます)、https://ieeexplore.ieee.org/document/614177/)など)。ただし、これらの正則化戦略はそれ自体パラメーター化されます(いつ停止するのか、削除するニューロンの数など)。さらに、ほとんどの機械学習モデルには、トレーニングを開始する前に設定する必要のある多数のハイパーパラメーターがあります。そして、これらのハイパーパラメーターはパラメーター調整フェーズで調整されます。
これにより、2番目の、より微妙なタイプのオーバーフィッティング、つまりハイパーパラメーターオーバーフィッティングが実現します。クロス検証を使用して、サンプルのk-1倍でモデルをゼロから繰り返しトレーニングし、最後の倍でテストすることにより、「最適な」ハイパーパラメーターを見つけることができます。
それでは、正確にどのように行われますか?検索戦略(tenshiが指定)に応じて、モデルのハイパーパラメーターを設定し、モデルをk回トレーニングします。毎回、異なるテストフォールドを使用します。すべてのテストフォールドにわたるモデルの平均パフォーマンスを「記憶」し、ハイパーパラメーターの別のセットに対して手順全体を繰り返します。次に、相互検証中の最高のパフォーマンスに対応するハイパーパラメーターのセットを選択します。ご覧のとおり、この手順の計算コストは、考慮する必要があるハイパーパラメーターセットの数に大きく依存しています。そのため、このセットを選択するためのいくつかの戦略が開発されました(ここでは、tenshiが言ったことを一般化します)。
しかし、ハイパーパラメーターはデータをオーバーフィットする可能性があるため(そして、オーバーフィットするため)、これで話は終わりではありません。ほとんどの場合、そのまま使用できますが、モデルの一般化力を最大化する場合は、ハイパーパラメーターも同様に正規化してみてください。まず、ネストされたグリッド検索を使用することで、サンプル外のデータのパフォーマンスをもう少し良く評価できます(詳細:http : //scikit-learn.org/stable/auto_examples/model_selection/plot_nested_cross_validation_iris.html、ディスカッション:ネストされたクロス検証モデル選択用)、またはハイパーパラメーターの調整に使用されない検証セットを使用します。ハイパーパラメーター空間での正則化に関しては、多かれ少なかれ未解決の問題です。いくつかのアイデアには、最適なハイパーパラメーター値のセットではなく、中間に近いものを選択することが含まれます。推論は次のようになります:最良のハイパーパラメーター値は、他の列車データよりもパフォーマンスが良いという理由だけでデータをオーバーフィットする可能性が高く、悪いパラメーターは単に悪いですが、中央のパラメーターはおそらく最高のものよりも優れた一般化を達成できます。Andrew Ngはそれについて論文を書きました。別のオプションは、検索スペースを制限することです(ここで強いバイアスを導入することで正規化しています-検索スペースの外側の値が明らかに選択されることはありません)。
補足:パフォーマンスメトリックとして精度を使用することは、ほとんどの場合非常に悪い考えです。f1およびf_betaスコアを調べます。これらのメトリックは、ほとんどの場合、バイナリ分類問題で実際に最適化しようとしているものをよりよく反映します。
要約すると、交差検証自体は、サンプル外データのモデルのパフォーマンスを評価するために使用されますが、ハイパーパラメーター空間の検索戦略の1つと組み合わせてハイパーパラメーターを調整するためにも使用できます。適切なハイパーパラメーターを見つけることで、過剰適合を回避または少なくとも減らすことができますが、ハイパーパラメーターもデータを過剰適合させる可能性があることに留意してください。
scikit-learnのバックグラウンドを使用している場合、この回答が役立つ場合があります。
k分割交差検定を使用してデータをk
パーティションに分割し、推定器はパーティションでトレーニングk-1
され、kth
パーティションでテストされます。このように、どのパーティションをパーティションにするかを選択すると、可能性kth
がありますk
。したがって、推定器のk
あらゆるk
可能性の結果が得られます。
これらは計算コストが高い方法ですが、異なる推定量を試す場合は、CVとともにハイパーパラメーターチューニングを行うために次の3つを試すことができます。
私。GridSearchCV-すべての推定量のハイパーパラメーターのすべての可能なPおよびCの網羅的なリスト。最終的には、その特定の推定器CVの平均の平均を使用して、最適なハイパーパラメーターを提供します。
ii。RandomizedSearchCV-すべてのPおよびCのハイパーパラメーターを実行しませんが、ランダム化アプローチでは、最も近い正確な推定量を計算に費やすことができます。
iii。BayesSearchCV-一部ではありませんscikit-learn
が、ランダム化された検索とフィット結果を行うためのベイズ最適化を行います。
tl:dr:CVは、渡すデータが原因で推定器の高バイアスと高分散を回避するために使用されます。お役に立てば幸いです。