ここには、train_test_split ( Stratified Train/Test-split in scikit-learn ) を介して scikit で階層化されたトレーニング/テスト分割を行う方法の説明と、 np.split を介してランダムなトレーニング/検証/テスト分割を行う方法の説明 ( Howデータを 3 つのセット (トレーニング、検証、テスト) に分割するには? )。しかし、層化されたトレーニング/検証/テスト分割を行うことはどうですか。
階層化された (クラス ラベルでの) トレーニング/検証/テスト分割を実行するために頭に浮かぶ最も近い概算は次のとおりですが、1 回の関数呼び出しまたはより正確な方法でこれを達成できるより良い方法があると思います。
60/20/20 のトレーニング/検証/テストの分割を行いたいとしましょう。次に、私の現在のアプローチは、最初に 60/40 の成層分割を行い、次にその最初の 40 に対して 50/50 の層分割を行い、最終的に60/20/20 層別分割。
from sklearn.cross_validation import train_test_split
SEED = 2000
x_train, x_validation_and_test, y_train, y_validation_and_test = train_test_split(x, y, test_size=.4, random_state=SEED)
x_validation, x_test, y_validation, y_test = train_test_split(x_validation_and_test, y_validation_and_test, test_size=.5, random_state=SEED)
私のアプローチが正しい場合、および/またはより良いアプローチがある場合は、戻ってきてください。
ありがとうございました