問題タブ [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.
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 番目の質問:必要でない場合は、
/li>validation_split
andvalidation_data
をそれぞれ 0 と None に設定する必要がありますか?質問 3:その場合、トレーニング中に何が起こりますか? Keras は単に検証ステップを無視しますか?
質問 4:はまたはに属しますか、それともモデルのトレーニングに使用されることのない「テスト セット」( の場合のように) と見なされますか。
validation_split
k-1 folds
hold-out fold
cross validation