我想在r编码中进行10倍交叉验证,以计算平均错误率= ycap-y(y = xbeta),例如0-10测试集和90-100训练11-20测试和0-10 ,21-100培训21-31测试和0-20,31-100培训?
如何为此编写r代码?
IN y = xm * beta
如何在xm中替换训练和测试方法?以及如何在没有使用lm或glm函数的情况下为任何人编写r代码来运行循环?
rm(list=ls())
data1 <- read.csv(file.choose(), header=T)
n = nrow(data1)
m = ncol(data1)
x=data1[-m]
y=data1[m]
xm = ncol(x)
ym = n/10
x<-(matrix(unlist(x),ncol=xm, byrow=F))
y<-matrix(unlist(y),ncol=1,byrow=F)
a=1
prediction <- c()
for(j in 1:12)
{
p <- c(a)
for (i in 1:9)
{
p <- append(p, a+i)
}
a=p[10]+1
p <- as.integer(p)
xtrain <- x[-p,]
xtest <- x[p,]
ytrain <- y[-p]
ytest <- y[p]
beta=solve(t(xtrain)%*%xtrain)%*%t(xtrain)%*%ytrain
beta=solve(t(xtest)%*%xtest)%*%t(xtest)%*%ytest
}
ycap=xtest %*% beta
在此代码中如何找出测试版并找到测试版并计算平均误差?