我正在阅读插入包,我看到了那个代码;
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准确率。
谢谢。
答案 0 :(得分:1)
目前尚不清楚为什么要在这个问题上混合过度拟合; 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