如题
最近想手刻实践 cross validtion的算法
上网查了一下别人的范例code
如下
x <- runif(100)*10 #Random values between 0 and 10
y <- x+rnorm(100)*.1 #y~x+error
dataset <- data.frame(x,y) #Create data frame
dataset<- dataset[sample(nrow(dataset)),]
dataset
#here is the trick
folds <- cut(seq(1,nrow(dataset)),breaks=5,labels=FALSE)
folds
sample(nrow(dataset))
for(i in 1:5){
#Segement your data by fold using the which() function
#这里就是我想问的
testIndexes <- which(folds==i,arr.ind=TRUE)
#这里就是我想问的
testData <- dataset[testIndexes, ]
trainData <- dataset[-testIndexes, ]
#Use the test and train data partitions however you desire...
#必须要在这个步骤去套入model 然后计算MSE
}
他在切traing 和Testing时 使用了 fold的技巧
但是这整段有没有可能 不使用for 循环 而改用apply家族去实现
因为真的太喜欢使用apply的简洁了
还希望版友回答
偷偷问另外一个问题
我有一个function s 去计算 x*y
s<- function(x,y){ x*y }
s( c(2,3) , c(4,5) )
这里我会得到 8 15
但其实我想得到的是所有的可能性
8,10,12,15
请问我要如何在保有 input是 c(2,3) , c(4,5) 下 得到我要的结果呢
更甚至在 s ( c(2,3),c(4,5,6,7,8) ) 状况下也可以得到遍历的结果