我试图使用插入包进行选择,这是我使用的命令:
titanicDF3 = read.table("combo.txt", header = TRUE)
View(titanicDF3)
require(caret)
require(fscaret)
splitIndex <- createDataPartition(titanicDF3$Survived, p = .75, list = FALSE, times = 1)
trainDF <- titanicDF3[ splitIndex,]
testDF <- titanicDF3[-splitIndex,]
fsModels <- c("glm", "gbm", "treebag", "ridge", "lasso")
myFS<-fscaret(trainDF, testDF, myTimeLimit = 40, preprocessData=TRUE,
Used.funcRegPred = 'gbm', with.labels=TRUE,
supress.output=FALSE, no.cores=2)
但是我收到了错误:
Error in checkForRemoteErrors(val) :
one node produced an error: incorrect number of dimensions
由于我是R的新手,我不确定是什么导致了这一点。任何想法或建议都将受到欢迎。
供参考,我的文本文件如下所示
Gene Start end Item1 Item2 Item3 Item4 Item5 Survived
100 1 56 3123 2149 3211 5000 300 0
100 34 78 3456 2345 1210 5462 321 0
100 43 98 4312 3210 2894 5487 350 0
100 54 102 4671 4310 3106 6579 390 0
100 98 121 5601 4450 4123 6792 352 0
140 130 280 7699 8790 8791 2122 768 1
140 160 321 6590 7680 8612 1278 779 1
140 210 345 8680 6712 7689 3128 987 1
140 260 431 8981 7781 9761 2199 453 1
140 324 540 9791 9941 8634 2679 410 1
我也尝试使用不同的型号。当我使用glm模型时,我遇到了新的错误
fsModels <- c("glm", "knn", "svmPoly", "svmLinear")
myFS<-fscaret(trainDF, testDF, myTimeLimit = 40, preprocessData=TRUE,
Used.funcRegPred = 'glm', with.labels=TRUE,
supress.output=FALSE, no.cores=2)
----Processing files:----
[1] "1in_default_REGControl_glm.RData"
[1] ""
[1] "Calculating error for model:"
[1] "1in_default_REGControl_glm.RData"
[1] ""
----Processing files:----
[1] "1in_default_REGControl_VarImp_glm.txt"
Error in `[<-.data.frame`(`*tmp*`, rows, ncol(matrycaVarImp.RMSE), value = numeric(0)) :
replacement has length zero
当我选择任何其他模型说svm时,之前的错误仍然存在 即:
Error in checkForRemoteErrors(val) :
one node produced an error: incorrect number of dimensions
我在这里遗漏了什么吗?有人可以对此有更多的了解吗?
答案 0 :(得分:0)
您的代码的问题在于您尝试在回归模式下使用fscaret()
函数,但您的数据显然是分解的(如果不是由您有意,而不是read.table()
或内部由{{ 1}}功能)。
对于您为fscaret()
仅提供fsModels
的示例,不使用NaN&#39;以下代码:
glm
标记titanicDF3 = read.table("combo.txt", header = TRUE)
View(titanicDF3)
require(caret)
require(fscaret)
splitIndex <- createDataPartition(titanicDF3$Survived, p = .75, list = FALSE, times = 1)
trainDF <- titanicDF3[ splitIndex,]
testDF <- titanicDF3[-splitIndex,]
fsModels <- c("glm", "gbm", "treebag", "ridge", "lasso")
myFS<-fscaret(trainDF, testDF, myTimeLimit = 40, preprocessData=TRUE, classPred = TRUE, regPred = FALSE,
Used.funcClassPred = fsModels, with.labels=TRUE,
supress.output=FALSE, no.cores=2)
。另请注意Used.funcClassPred = fsModels
,它会阻止fscaret()以回归模式运行。