Sklearnトレーニングセットとテストセットをランダムに分割

1179 ワード

train_test_splitはクロス検証でよく使われる関数で、train dataとtestdataをサンプルからランダムに比例して選択します.形式は次のとおりです.
X_train,X_test, y_train, y_test =
cross_validation.train_test_split(train_data,train_target,test_size=0.4, random_state=0)
パラメータの説明:train_data:区分するサンプルフィーチャーセット
train_target:分割するサンプル結果
test_size:サンプルの割合、整数ならサンプルの数
random_state:乱数のシードです.
乱数シード:実はこのグループの乱数の番号で、繰り返し試験が必要な場合、同じ乱数を得ることを保証します.例えば、毎回1を記入し、他のパラメータが同じ場合、あなたが得たランダム配列は同じです.しかし、0を記入するか、記入しないかは、毎回違います.
乱数の生成は、シード、乱数、シードの関係によって異なります.
種子が異なり、異なる乱数を生成する.シードは同じで、インスタンスが異なる場合でも同じ乱数を生成します.
サンプルコードは次のとおりです.
"""
 
 
"""
from sklearn.model_selection import train_test_split

img_add = 'G:\\dataset\\train.txt'
data_set = [x.strip() for x in open(img_add).readlines()]

train_X, test_X = train_test_split(data_set, test_size=0.2, random_state=0)
print(train_X)
print(test_X)

train_file = open('G:\\dataset\\WJ-data\\train_file.txt', 'w')
for x in train_X:
    train_file.write(x+'
') test_file = open('G:\\dataset\\WJ-data\\valid_file.txt', 'w') for x in test_X: test_file.write(x+'
')