通过 train_test_split() 使用单独的测试和训练文件

时间:2021-01-24 12:06:02

标签: python pandas machine-learning training-data train-test-split

我有两个 .csv 文件,其中一个是 test.csv,另一个是 train.csv。但是,正如您可以预测的那样,测试文件没有 target column(在本例中为“y”),而训练文件有。

我想做的是首先使用训练文件来完全训练系统,然后使用测试文件来查看预测。

我正在使用 from sklearn.model_selection import train_test_split() 创建训练和测试示例,但它仅接受 1 个文件路径。我想先使用训练文件训练系统,然后在完成后我想从 test.csv 文件中获取测试数据并进行预测。

所以首先我尝试了经典方法,但减少了测试大小,因此就像“此文件仅用于训练”一样,

import pandas as pd
from sklearn.svm import SVC
dataset = pd.read_csv(r'path\train.csv', sep=",")
X_train, X_test, y_train, y_test = train_test_split(
       X, y, test_size = 0.001, random_state = 45)

clf = SVC(kernel = 'rbf')
clf.fit(X_train, y_train)

但是,当涉及到真正的测试部分(我想使用 test.csv 中没有目标值的数据)时,我如何导入 test.csv 以某种方式我可以使用训练好的测试数据上面的模型

#get data from test.csv as somehow X_test
clfPredict = clf.predict(X_test)

如果使用 train_test_split() 无法做到这一点,完成此任务的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您需要加载火车 CSV 并将其拆分为:

y_train = df1['Y column']
X_train = df1.drop('Y Column', axis = 1)

关于测试:

X_test = df2

和 y_test 将是 clf.predict(X_test) 的结果