使用kNN和RF进行交叉验证

时间:2016-11-30 06:57:11

标签: r imputation

我有50列和150行的数据矩阵。我想对数据集进行交叉验证。数据子集如下所示:

CN+OU

首先,我想用>dat<-matrix(c(7,8,5,6,4,5,6,6,1,9,8,5,14,11,15,14,21,24,25,26, 31,34,35,37), nrow=8, ncol=4) >colnames(dat)<- c("ABC", "BCD", "CDE", "DEF") >dat<-data.frame(dat) 替换第一个值,并使用NAMV来估算kNN。为整个数据集保存数组中列中每个值的插补值并显示结果。

我在这里做了一些事情

Rf

运行上面的代码后,我收到的警告很少

 library(VIM)
 col <- names(dat)
 das <-dat
 for(name in col){  
    sp <- das[[name]]
    sp<-data.frame(sp)
    ps<-das[,-which(names(das) == name)]
    sp<-cbind(sp,ps)
for(i in 1:length(sp[,1])){
               d<-sp[,1]
               p1<-sp[,2:NCOL(sp)] 
               d[i]<-NA
               d<-data.frame(d) 
               d<-cbind(d,p1)
               mnt_im<-kNN(d,variable="d", 3)  
               mnt_m[i]<-mnt_im[i,1]
               d<-sp[,1]
       }
       #g<-assign(name, mnt_m)
       mnt_m<-data.frame(mnt_m)
       write.csv(mnt_m, "/home/Desktop/result.csv", append=TRUE)
}

此外,它没有正确计算值,甚至附加在一个向量列中。我希望它分别用于单独的列。

我认为估算存在错误。 我必须为每个变量做同样的事情。我不知道到底发生了什么。你能找到我正在做的代码中的错误吗? Warning messages: 1: In write.csv(mnt_m, "/home/Desktop/result.csv", append = TRUE) : attempt to set 'append' ignored 2: In write.csv(mnt_m, "/home/Desktop/result.csv", append = TRUE) : attempt to set 'append' ignored 3: In write.csv(mnt_m, "/home/Desktop/result.csv", append = TRUE) : attempt to set 'append' ignored 4: In write.csv(mnt_m, "/home/Desktop/result.csv", append = TRUE) : attempt to set 'append' ignored 也没有正确追加。如何对整个数据集进行此操作?我是R.的新手。如何对write.csv以及kNN中的rfImpute进行此操作?

0 个答案:

没有答案