将数据拆分为培训和测试

时间:2017-07-11 20:48:31

标签: split scikit-learn training-data

有谁知道如何在一个数据集上训练并在另一个数据集上进行测试? 到目前为止,我只知道我们可以使用这行代码将一个数据集拆分为训练和测试:

X_train, X_test, y_train, y_test = \
        train_test_split(X, y, test_size=0.30, random_state=1)

如果我们在一个数据集上训练并在另一个数据集上进行测试,我不知道该行应该改变哪个部分。

1 个答案:

答案 0 :(得分:1)

您提供的关于train_test_split的代码行是在数据集的不同部分进行培训和测试的第一步。在此之后,您需要fit modelpredict给出model给出的某些结果。

但是,您似乎对机器学习和scikit-learn不熟悉,只是回答您的问题并不能真正帮助您,而是我建议您遵循此{{} 3}},它非常简单明了,也很简单。

这将有助于您入门并让您更好地了解培训和测试的工作方式,并为您提供有关cross_validation的示例。

以防万一,您可以遵循另一个tutorial以便更好地理解。这个有点复杂,所以请在第二位检查。

在这些之后,您将能够使用scikit-learn官方文档找到自己的方式。

编辑:

如果您想处理完全不同的设置,它与train_test_split几乎相同,现在唯一的区别是您不会将数据拆分为训练和测试部件:

X_train, X_test, y_train, y_test = \
        train_test_split(X, y, test_size=0.30, random_state=1)

相反,您只需要获取第一个data_set(用于培训的数据集),然后将X_trainy_train用于其中:

X_train = data_train[feature_cols]
y_train = data_train['y_col']

和您的测试集相同(只要您有一个):

X_test = data_test[feature_cols] # make sure you're having the same features
y_test = data_test['y_col'] 

之后,没有什么真正改变。

现在,如果您注意到,如果您将两个数据集合并在一起,则使用train_test_split的情况完全相同(train_test_split随机分割数据除外)

我相信这就是你要求的。

希望这在某种程度上有所帮助。