如何将训练和测试数据集拆分为 X_Train y_train 和 X_Test y_Test? [复制]

Posted

技术标签:

【中文标题】如何将训练和测试数据集拆分为 X_Train y_train 和 X_Test y_Test? [复制]【英文标题】:How to split train and test dataset to X_Train y_train and X_Test y_Test? [duplicate] 【发布时间】:2018-04-29 12:32:04 【问题描述】:

所以我成功地将我的数据集以 70:30 的比例拆分为训练和测试 我用这个:

df_glass['split'] = np.random.randn(df_glass.shape[0], 1)
msk = np.random.rand(len(df_glass)) <= 0.7
train = df_glass[msk]
test = df_glass[~msk]
print(train)
print(test)

现在我如何将训练和测试拆分为 X_trainy_trainX_testy_test 这样X表示数据库的特征,y表示响应?

我需要在 X_Trainy_Train 上进行监督学习并应用 ML 模块。

我的数据库如下所示: Database_snippet

【问题讨论】:

【参考方案1】:

Scikit-Learn 有一种方便的方法来拆分 pandas 数据帧 -

这将进行拆分 -

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(df[list_of_X_cols], df['y'], test_size=0.33, random_state=42)

【讨论】:

我是初学者,你能解释一下我应该通过什么“list_of_X_cols” 您将视为独立变量的列的列表。这些基本上是数据中以逗号分隔的列名列表 太棒了!谢谢你Vivek【参考方案2】:

我想你可能会发现这对理解很有用..

import pandas as pd
from sklearn.cross_validation import train_test_split
from sklearn.linear_model import LinearRegression

#importing dataset
dataset = pd.read_csv('Salary_Data.csv')
x = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 1].values

#spliting the dataset into training and test set
x_train, x_test, y_train, y_test = train_test_split(x, y, 
test_size=1/3, random_state=0)

【讨论】:

你好,你能帮我理解一下的含义吗:x = dataset.iloc[:, :-1].values y = dataset.iloc[:, 1].values Acc to the database my features位于前 5 列,最后一列是响应。 这里和那里的一些调整,它工作!谢谢 iloc 基本上是基于整数位置的索引,用于按位置进行选择。我的模型是一个带有一个自变量的简单线性回归,我按照线性方程 y = mx + b 将数据拆分为 x =“自变量”和 y =“因变量”。

以上是关于如何将训练和测试数据集拆分为 X_Train y_train 和 X_Test y_Test? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用一个热编码数据训练测试拆分?

模型训练与优化

将图像数据集拆分为训练测试数据集

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

R:如何将数据框拆分为训练集、验证集和测试集?

如何将数据集 (csv) 拆分为训练和测试数据