使用 runif 将数据集拆分为训练集和测试集

Split a data set into a training and test set with runif

我有一个关于命令的问题。我们在 class runif 中使用了一个训练集,它应该包含 50% 的数据集。 (我们基于这个训练集开发了一个决策树)。但是我仍然无法理解这个命令背后的逻辑,有人可以向我解释一下这是如何工作的吗?

我了解决策树以及拆分数据集背后的逻辑,我的问题只是明确地说明此命令的工作原理。

inTrain <- runif(nrow(USArrests)) < 0.5

你有一个名为 USArrests 的数据集,长度为 nrow(USArrests),为了简化起见,我们假设为 100。因此 runif(nrow(USArrests)) 创建 100 个均匀分布的随机数,即对于你的每一行数据集一号。

接下来您的表达式 runif(nrow(USArrests)) < 0.5 检查数字是否为 < 0.5 或不返回 TRUEFALSE。这为您提供了一个长度为 100(或 nrow(USArrests))的逻辑向量,指示某行是属于训练数据集还是属于测试数据集。

它没有显示,但最后你 select 你的训练数据

USArrests[inTrain,]

和你的测试数据

USArrests[-inTrain,]