如何在不拆分数据帧的情况下传递不同的数据集进行训练和测试。 (Python)?

Posted

技术标签:

【中文标题】如何在不拆分数据帧的情况下传递不同的数据集进行训练和测试。 (Python)?【英文标题】:How to pass different set of data to train and test without splitting a dataframe. (python)? 【发布时间】:2019-10-14 01:37:39 【问题描述】:

我已经解决了多个问题,这些问题有助于将您的数据框分为训练和测试,使用 scikit,不使用等。

但我的问题是我有 2 个不同的 csv(来自不同年份的 2 个不同的数据框)。我想用一个作为火车,另一个作为测试?

如何为 LinearRegression / 任何模型执行此操作?

【问题讨论】:

【参考方案1】: 单独加载数据集。 确保它们的行和列(特征)格式相同。 使用train 设置为fit 模型。 使用test设置为predict训练后的输出。
# Load the data
train = pd.read_csv('train.csv')
test = pd.read_csv('test.csv')

# Split features and value
# when trying to predict column "target" 
X_train, y_train = train.drop("target"), train["target"]
X_test, y_test = test.drop("target"), test["target"]

# Fit (train) model
reg = LinearRegression()
reg.fit(X_train, y_train)

# Predict
pred = reg.predict(X_test)

# Score
accuracy = reg.socre(X_test, y_test)

【讨论】:

是的,X_trainX_test 必须具有相同的列序列(特征)。 嗨,我想你忘记添加 X_ 和 y_ 前缀来“加载数据”? :)【参考方案2】:

请问skillmuggler X_train 和 X_Test 怎么样,我该如何定义它,因为当我尝试这样做时,它说 NameError: name 'X_train' is not defined

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。 是的,有点不对。请在前三行后添加 y_train = train[:, :1] #if y 只是一列 X_train = train[:, 1:]【参考方案3】:

我无法编辑几乎存在的第一个答案。虽然缺少一些代码...

# Load the data
train = pd.read_csv('train.csv')
test = pd.read_csv('test.csv')

y_train = train[:, :1]  #if y is only one column
X_train = train[:, 1:]

# Fit (train) model
reg = LinearRegression()
reg.fit(X_train, y_train)

# Predict
pred = reg.predict(X_test)

# Score
accuracy = reg.socre(X_test, y_test)

【讨论】:

以上是关于如何在不拆分数据帧的情况下传递不同的数据集进行训练和测试。 (Python)?的主要内容,如果未能解决你的问题,请参考以下文章

Pandas:如何在不使用 scikit 的情况下进行交叉验证?

QDA |训练和测试数据集的长度 |如何拆分训练数据和测试数据?

拆分数据数据类型后的Spark RDD如何在不更改数据类型的情况下拆分

如何将训练数据集拆分为训练,验证和测试数据集?

如何从 .csv 文件中拆分数据集以进行训练和测试?

当我在 Lasso Regression 中拆分训练集和测试集时,R^2 为负数