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

How to split a dataset (CSV) into training and test data

如果数据集 (CSV) 中没有因变量,如何使用 Python 编程语言将数据集 (CSV) 拆分为训练数据和测试数据?

我目前从事的项目是基于机器学习的,数据集不包含任何依赖数据。以下代码仅在数据集包含依赖数据时才有效-

from sklearn.model_selection import train_test_split
xTrain, xTest, yTrain, yTest = train_test_split(x, y, test_size = 0.2, random_state = 0)

我希望拆分在没有任何 y 变量的情况下发生。 可能吗?

有两种"random"分布。 1) 100% 随机 2) 'random' 但 'equal' 数据分布(即相同的方法/规范)

为了回答您的问题,我首先建议您使用一个包来管理您的数据框(即 Pandas)

有关信息,请参阅 link: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sample.html

因此,如果您想通过替换获得 DataFrame 的随机 50% 样本:

 df.sample(frac=0.5, replace=True, random_state=1)

要将数据集拆分为训练集和测试集,我们可以先对整个数据集进行洗牌,然后根据需要的大小将其切分。

import pandas as pd
shuffle = df.sample(frac=1)

train_size = int(0.8 * len(df))

train = shuffle[:train_size]
test = shuffle[train_size:]