タイトルは自明だと思いますが、詳しく尋ねると、次のように機能するsklearnのメソッドtrain_test_split()
があります。X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.3, stratify = Y)
つまり、このメソッドはデータを0.3:0.7の比率で分割します。両方のデータのラベルのパーセンテージを等しくするようにしてください。これに相当するkerasはありますか?
残念ながら、答え(私たちの願いにもかかわらず)はノーです!直接ロードできるMNISTなどの既存のデータセットがいくつかあります。
(X_train, y_train), (X_test, y_test) = mnist.load_data()
分割された方法でのこの直接ロードは、一般的な方法を持っているという誤った希望を抱かせますが、残念ながら、ここにはありませんが、 SciKit-Learn on Kerasのラッパー を使用することに興味があるかもしれません。 =。
DataScience SEにはほとんど 同様の質問 があります
現在、kerasDatasetクラスを使用しています。新しいtensorflowリリースと一緒にkeras-2.2.4-tfを実行しています。
基本的に、tf.data.Dataset.from_tensor_slices
のようなものを使用してすべてのデータをデータセットにロードします。次に、トレーニングと検証のためにデータを新しいデータセットに分割します。たとえば、データセット内のすべてのレコードをシャッフルします。次に、最初の400を除くすべてをトレーニングとして使用し、最初の400を検証として使用します。
ds = ds_in.shuffle(buffer_size=rec_count)
ds_train = ds.skip(400)
ds_validate = ds.take(400)
Datasetクラスのインスタンスは、Kerasモデルに渡す自然なコンテナーです。テンソルフローまたはkerasトレーニングの例からコンセプトをコピーしましたが、再度見つけることができないようです。
load_data
メソッドを使用して固定されたデータセットはnumpy.ndarrayクラスを作成するため、少し異なりますが、kerasデータセットに簡単に変換できます。多くの既存のコードが壊れてしまうので、これは行われていないのではないかと思います。