我在阅读插入符号包,看到了那个代码。

createDataPartition(y, times = 1, p = 0.5, list = TRUE, groups = min(5,
length(y)))


我想知道有关“时间”的表达方式。因此,如果我使用此代码,

inTrain2 <- createDataPartition(y = MyData$Class ,times=3, p = .70,list = FALSE)

training2 <- MyData[ inTrain2,]    # ≈ %67 (train)
testing2<- MydData[-inTrain2[2],]  # ≈ %33 (test)


会导致过度拟合问题吗?还是将其用于某种重采样方法(无偏)?

提前谢谢了。

编辑:

我想提一下,如果我使用此代码;

 inTrain2 <- createDataPartition(y = MyData$Class ,times=1, p = .70,list = FALSE)
 training2<- MyData[ inTrain2,] #142 samples # ≈ %67 (train)
  testing2<- MydData[-inTrain2,] #69 samples # ≈ %33 (test)


我将得到211个样本,准确率约为≈%52,如果我使用此代码,

  inTrain2 <- createDataPartition(y = MyData$Class ,times=3,p =.70,list = FALSE)
   training2<- MyData[ inTrain2,]     # ≈ %67 (train) # 426 samples
    testing2<- MydData[-inTrain2[2],] # ≈ %33 (test)  # 210 samples


我将获得536个样本,并且≈98%的准确率。

谢谢。

最佳答案

目前尚不清楚为什么在这个问题中混合过度拟合; times仅指您想要多少个不同的分区(docs)。让我们看一个使用iris数据的示例:

library(caret)
data(iris)

ind1 <- createDataPartition(iris$Species, times=1, list=FALSE)
ind2 <- createDataPartition(iris$Species, times=2, list=FALSE)

nrow(ind1)
# 75
nrow(ind2)
# 75

head(ind1)
     Resample1
[1,]         1
[2,]         5
[3,]         7
[4,]        11
[5,]        12
[6,]        18

head(ind2)
     Resample1 Resample2
[1,]         2         1
[2,]         3         4
[3,]         6         6
[4,]         7         9
[5,]         8        10
[6,]        11        11


两个索引的长度均为75(因为我们使用了默认参数p=0.5,即初始数据集的一半行)。 ind2的列(不同样本)在它们之间是独立的,并且保留了不同iris$Species的类比,例如:

length(which(iris$Species[ind2[,1]]=='setosa'))
# 25
length(which(iris$Species[ind2[,2]]=='setosa'))
# 25

关于r - 插入符包装和过度拟合中的数据分区,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49192550/

10-09 01:51