【发布时间】:2015-05-25 19:35:57
【问题描述】:
有没有办法将数据拆分为训练和测试,以便测试数据中的所有分类预测变量组合都出现在训练数据中?如果给定测试和训练大小指定的比例无法拆分数据,则这些级别不应包含在测试数据中。
假设我有这样的数据:
SAMPLE_DF <- data.frame("FACTOR1" = c(rep(letters[1:2], 8), "g", "g", "h", "i"),
"FACTOR2" = c(rep(letters[3:5], 2,), rep("z", 3), "f"),
"response" = rnorm(10,10,1),
"node" = c(rep(c(1,2),5)))
> SAMPLE_DF
FACTOR1 FACTOR2 response node
1 a c 10.334690 1
2 b d 11.467605 2
3 a e 8.935463 1
4 b c 10.253852 2
5 a d 11.067347 1
6 b e 10.548887 2
7 a z 10.066082 1
8 b z 10.887074 2
9 a z 8.802410 1
10 b f 9.319187 2
11 a c 10.334690 1
12 b d 11.467605 2
13 a e 8.935463 1
14 b c 10.253852 2
15 a d 11.067347 1
16 b e 10.548887 2
17 g z 10.066082 1
18 g z 10.887074 2
19 h z 8.802410 1
20 i f 9.319187 2
在测试数据中,如果ac 的 FACTOR 1 和 2 组合在一起,那么这也将出现在训练数据中。所有其他可能的组合也是如此。
createDataPartition 只为一个级别执行此操作,但我希望它适用于所有级别。
【问题讨论】:
-
在
interaction( FACTOR1, FACTOR2)或paste(FACTOR1, FACTOR2, sep="_")上使用createDataPartition(从你发现的R 宇宙的任何角落)
标签: r cross-validation