如何将训练和测试数据集拆分为 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_train
和 y_train
和 X_test
和 y_test
这样X
表示数据库的特征,y表示响应?
我需要在 X_Train
和 y_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? [复制]的主要内容,如果未能解决你的问题,请参考以下文章