当前位置: 首页 > 知识库问答 >
问题:

如何使用示例函数将数据拆分为训练/测试集

赵智勇
2023-03-14

我刚刚开始使用R,我不确定如何将我的数据集与以下示例代码结合起来:

sample(x, size, replace = FALSE, prob = NULL)

我有一个数据集,我需要将其放入训练(75%)和测试(25%)集中。我不确定应该将哪些信息放入x和大小?x是数据集文件吗?我有多少样本?

共有3个答案

令狐高洁
2023-03-14

我将使用<code>dplyr</code>来实现这一点,使它变得非常简单。它确实需要数据集中有一个id变量,这无论如何都是一个好主意,不仅用于创建数据集,而且用于项目期间的可追溯性。如果不包含,则添加它。

mtcars$id <- 1:nrow(mtcars)
train <- mtcars %>% dplyr::sample_frac(.75)
test  <- dplyr::anti_join(mtcars, train, by = 'id')
公冶鸣
2023-03-14

它可以通过以下方式轻松完成:

set.seed(101) # Set Seed so that same sample can be reproduced in future also
# Now Selecting 75% of data as sample from total 'n' rows of the data  
sample <- sample.int(n = nrow(data), size = floor(.75*nrow(data)), replace = F)
train <- data[sample, ]
test  <- data[-sample, ]

通过使用caTools包:

require(caTools)
set.seed(101) 
sample = sample.split(data$anycolumn, SplitRatio = .75)
train = subset(data, sample == TRUE)
test  = subset(data, sample == FALSE)
晁英彦
2023-03-14

有许多方法可以实现数据划分。要获得更完整的方法,请查看插入符号包中的createData分区函数。

下面是一个简单的例子:

data(mtcars)

## 75% of the sample size
smp_size <- floor(0.75 * nrow(mtcars))

## set the seed to make your partition reproducible
set.seed(123)
train_ind <- sample(seq_len(nrow(mtcars)), size = smp_size)

train <- mtcars[train_ind, ]
test <- mtcars[-train_ind, ]
 类似资料:
  • 问题内容: 我有一个很大的数据集,想将其分为训练(50%)和测试集(50%)。 假设我有100个示例存储了输入文件,每一行包含一个示例。我需要选择50条线作为训练集和50条线测试集。 我的想法是首先生成一个长度为100(值范围从1到100)的随机列表,然后将前50个元素用作50个训练示例的行号。与测试集相同。 这可以在Matlab中轻松实现 但是如何在Python中完成此功能?我是Python的新

  • 问题内容: 我有一个火花时间序列数据框。我想将其拆分为80-20(训练测试)。由于这是 时间序列数据帧 ,因此我不想进行随机拆分。为了将第一个数据帧传递到训练中并传递第二个数据帧进行测试,我该如何做? 问题答案: 您可以用来获取按时间戳/日期列排序的DataFrame的百分位排名。然后选择所有列作为训练集,其余作为测试集。 例如,如果您具有以下DataFrame: 您需要训练集中的前4行和训练集中

  • 问题内容: 将NumPy数组随机分为训练和测试/验证数据集的好方法是什么?与Matlab中的或函数类似。 问题答案: 如果要将数据集分成两半,可以使用,或者需要跟踪索引: 要么 有多种方法可以重复分区同一数据集以进行交叉验证。一种策略是从数据集中重复采样: 最后,sklearn包含几种交叉验证方法(k折,nave -n-out等)。它还包括更高级的“分层抽样”方法,这些方法创建了针对某些功能平衡的

  • 为了评估我们的监督模型的泛化能力,我们可以将数据分成训练和测试集: from sklearn.datasets import load_iris iris = load_iris() X, y = iris.data, iris.target 考虑如何正常执行机器学习,训练/测试分割的想法是有道理的。真实世界系统根据他们拥有的数据进行训练,当其他数据进入时(来自客户,传感器或其他来源),经过训

  • 问题内容: 我正在尝试运行以下Colab项目,但是当我想将训练数据分为验证和训练部分时,出现此错误: 我使用以下代码: 如何解决此错误? 问题答案: 根据Tensorflow Dataset docs ,百分比拆分是可能的,例如 如示例所示,更改列表时,您的代码将起作用: 使用上面的代码,有2590个条目,而有1080个。

  • 问题内容: 我需要将数据分为训练集(75%)和测试集(25%)。我目前使用以下代码进行操作: 但是,我想对训练数据集进行分层。我怎么做?我一直在研究该方法,但不允许我指定75%/ 25%的划分,而是仅对训练数据集进行分层。 问题答案: [更新为0.17] 请参阅以下文档: [/更新为0.17] 有一个拉要求在这里。但是,您可以根据需要简单地进行 训练和测试索引的使用。