如何拆分数据集以在 Python 中进行训练、测试和验证?
How to split dataset to train, test and valid in Python?
我有这样的数据集
my_data= [['Manchester', '23', '80', 'CM',
'Manchester', '22', '79', 'RM',
'Manchester', '19', '76', 'LB'],
['Benfica', '26', '77', 'CF',
'Benfica', '22', '74', 'CDM',
'Benfica', '17', '70', 'RB'],
['Dortmund', '24', '75', 'CM',
'Dortmund', '18', '74', 'AM',
'Dortmund', '16', '69', 'LM']
]
我知道使用 sklearn.cross_validation 中的 train_test_split,我试过这个
from sklearn.model_selection import train_test_split
train, test = train_test_split(my_data, test_size = 0.2)
结果只是分为测试和训练。我想把它分成 3 个独立的随机数据集。
预计:
测试、训练、有效
可以用numpy+实现pandas,看下面脚本拆分0.6 + 0.2 + 0.2
:
train_size = 0.6
validate_size = 0.2
train, validate, test = np.split(my_data.sample(frac=1), [int(train_size * len(my_data)), int((validate_size + train_size) * len(my_data))])
你可以简单地使用train_test拆分两次
X_train, X_test, y_train, y_test
= train_test_split(X, y, test_size=0.2, random_state=1)
X_train, X_val, y_train, y_val
= train_test_split(X_train, y_train, test_size=0.25, random_state=1)
还有,可以找到答案
我有这样的数据集
my_data= [['Manchester', '23', '80', 'CM',
'Manchester', '22', '79', 'RM',
'Manchester', '19', '76', 'LB'],
['Benfica', '26', '77', 'CF',
'Benfica', '22', '74', 'CDM',
'Benfica', '17', '70', 'RB'],
['Dortmund', '24', '75', 'CM',
'Dortmund', '18', '74', 'AM',
'Dortmund', '16', '69', 'LM']
]
我知道使用 sklearn.cross_validation 中的 train_test_split,我试过这个
from sklearn.model_selection import train_test_split
train, test = train_test_split(my_data, test_size = 0.2)
结果只是分为测试和训练。我想把它分成 3 个独立的随机数据集。
预计: 测试、训练、有效
可以用numpy+实现pandas,看下面脚本拆分0.6 + 0.2 + 0.2
:
train_size = 0.6
validate_size = 0.2
train, validate, test = np.split(my_data.sample(frac=1), [int(train_size * len(my_data)), int((validate_size + train_size) * len(my_data))])
你可以简单地使用train_test拆分两次
X_train, X_test, y_train, y_test
= train_test_split(X, y, test_size=0.2, random_state=1)
X_train, X_val, y_train, y_val
= train_test_split(X_train, y_train, test_size=0.25, random_state=1)
还有,可以找到答案