問題タブ [train-test-split]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1742 参照

machine-learning - Keras での交差検証と validation_data/validation_split の違い

まず、データセットをトレーニングとテストに分割します。次に例を示します。

次にGridSearchCV、クロス検証を使用して、最もパフォーマンスの高いモデルを見つけます。

そして、これを行うことで、次のことができます。

モデルは、k-1 個のフォールドをトレーニング データとして使用してトレーニングされます。結果のモデルは、データの残りの部分で検証されます ( scikit-learn.org )

しかし、その後、Keras の機能について読むfitと、ドキュメントにはさらに 2 つの用語が導入されています。

validation_split: 0 から 1 の間の浮動小数点数。検証データとして使用されるトレーニング データの一部。モデルはトレーニング データのこの部分を分離し、トレーニングは行わず、各エポックの終わりにこのデータの損失とモデル メトリックを評価します。検証データは、シャッフルする前に、提供された x および y データの最後のサンプルから選択されます。

validation_data: 各エポックの終わりに損失とモデル メトリックを評価するタプル (x_val, y_val) またはタプル (x_val, y_val, val_sample_weights)。モデルはこのデータでトレーニングされません。validation_data は validation_split をオーバーライドします。

私が理解していることから、validation_split(によってオーバーライドされるvalidation_data) は変更されていない検証データセットとして使用され、その間、各交差検証ステップ中に交差検証で設定されたホールドアウトが変更されます。

  • 最初の質問: 使用する必要がありますか、validation_splitまたはvalidation_data既にクロス検証を行っているためですか?
  • 2 番目の質問:必要でない場合は、validation_splitandvalidation_dataをそれぞれ 0 と None に設定する必要がありますか?

    /li>
  • 質問 3:その場合、トレーニング中に何が起こりますか? Keras は単に検証ステップを無視しますか?

  • 質問 4:はまたはに属しますか、それともモデルのトレーニングに使用されることのない「テスト セット」( の場合のように) と見なされますか。validation_splitk-1 foldshold-out foldcross validation