Python 如何准备支持向量回归模型的训练集,该模型能够包含行数直到行数1000?

Python 如何准备支持向量回归模型的训练集,该模型能够包含行数直到行数1000?,python,pandas,machine-learning,scikit-learn,Python,Pandas,Machine Learning,Scikit Learn,我有数据帧,即df。其中包含超过2000行和15列,包括费用列。我已经完成了SVR的所有流程。现在,我想让训练集包含第1000行之前的行 测试集将有一行,行号1001 为了准备培训和测试模型,我需要将费用列作为目标值,并将所有其他列作为功能 但我知道将其分为训练集(50%)和测试集(50%)的方法。我包括以下内容: from sklearn.svm import SVR import pandas import sklearn csv = pandas.read_csv('data.csv')

我有数据帧,即df。其中包含超过2000行和15列,包括
费用列
。我已经完成了SVR的所有流程。现在,我想让训练集包含第1000行之前的行

测试集将有一行,行号
1001

为了准备培训和测试模型,我需要将
费用列
作为目标值,并将所有其他列作为功能

但我知道将其分为训练集(50%)和测试集(50%)的方法。我包括以下内容:

from sklearn.svm import SVR
import pandas
import sklearn
csv = pandas.read_csv('data.csv')
train, test = sklearn.cross_validation.train_test_split(csv, train_size = 0.5)
如果我像上面提到的那样准备培训和测试集,我可以如何编写代码

这就是你想要的吗

csv = pandas.read_csv('data.csv')
train, test = csv.loc[:1000], csv.loc[1001]
然后,要将列车测试集进一步拆分为X和Y,只需执行以下操作:

train_X, train_Y = train.drop(columns=['expense']), test['expense']
test_X, test_Y = train.drop(columns=['expense']), test['expense']
相反,如果您希望使用列“use”作为响应,则应使用以下操作:

train, test = dataset.loc[:1000], dataset.loc[1001]

train_X, train_y = train.drop(columns=['use']), train['use']
test_X, test_y = test.drop(columns=['use']), test['use']

SupportVectorRefModel = SVR()
SupportVectorRefModel.fit(train_X, train_y)
SupportVectorRefModel.predict(test_X)

来自sklearn.model\u selection import train\u test\u split
来自sklearn.svm import SVR
X=dataset.loc[:1000]
y=dataset.loc[1001]
我更新了我的答案,其中也包括了X和y的拆分。我知道我的代码中用csv.loc[…]替换了df.loc[…]。让我知道它是否是这样工作的。如果这是您的完整代码,那么显然测试并没有定义,因为您从未定义过它。你为什么不按照我的建议去做呢?我很确定它是有效的。
train\u X,train\u Y=train.drop(列=['expense']),test['expense']test\u X,test\u Y=train.drop(列=['expense']),test['expense']
这一行似乎是从整个数据集中删除了
expense列。但是我需要从前面几行中得到的变量中删除它们。因此需要在247和248行中适当使用变量“X_train,y_train,X_test,y_test”。你能为这些目的提供说明吗?