【发布时间】:2018-03-16 19:44:01
【问题描述】:
我正在尝试将 iris 数据集拆分为训练集和测试集。我这样使用createDataPartition():
library(caret)
createDataPartition(iris$Species, p=0.1)
# [1] 12 22 26 41 42 57 63 79 89 93 114 117 134 137 142
createDataPartition(iris$Sepal.Length, p=0.1)
# [1] 1 27 44 46 54 68 72 77 83 84 93 99 104 109 117 132 134
我理解第一个查询。我有一个 0.1*150 个元素的向量(150 是数据集中的样本数)。但是,我应该在第二个查询中使用相同的向量,但我得到的是 17 个元素而不是 15 个元素的向量。
关于我为什么得到这些结果的任何想法?
【问题讨论】:
-
我不知道为什么会这样。我会通过
inds <- sample(1:nrow(iris), size=0.1*nrow(iris), replace=FALSE)以不同的方式解决它,然后使用testdata <- iris[inds, ]和traindata <- iris[-inds, ]。据我所知,sample()函数与createDataPartition()的作用相同,只是createDataPartition()考虑到它创建了一个有代表性的训练数据集(一些低值、一些高值等) -
你问为什么会得到这些结果,你得到了详细的解释——你为什么不接受答案??