在caret-svm中出错 - "在下标的作业中不允许使用NA"

时间:2017-01-11 16:30:56

标签: svm r-caret

专家。我是R的初学者。我正在尝试使用插入符号SVM进行分类。内核是svmPoly。 首先,我使用默认参数来训练模型,留下一次性交叉验证 代码是:

ctrl <- trainControl(method = "LOOCV",
                     classProbs = T,
                     savePredictions = T,
                     repeats = 1)
modelFit <- train(group~.,data=table_svm,method="svmPoly",
                  preProc = c("center","scale"),
                  trControl = ctrl) 

最佳准确度为80%。用于模型的最终值是degree = 1,scale = 0.1和C = 1.

其次,我试图调整参数。 代码是:

grid_svmpoly=expand.grid(degree=c(1:11),scale=seq(0,5,length.out=25),C=10^c(0:4)) 
modelFit_tune <- train(group~.,data=table_svm,method="svmPoly",
                  preProc = c("center","scale"),
                  tuneGrid=grid_svmpoly,
                  trControl = ctrl)

我收到一条错误消息:{:错误   任务264失败 - &#34;在下标的作业中不允许使用NA&#34;

我检查了数据,发现没有NA。

1 个答案:

答案 0 :(得分:0)

数据集中必须有一些NA。我不是新手,但不是很多专家。为了确保在内部没有NA,首先使用以下方法将数据集转换为矩阵格式:

Rectangle rectangle = new Rectangle((float) x, (float) y, (float) xWidth, (float) yWidth);

然后使用which()函数,在这种情况下非常方便:

x <- data.matrix(dataframe)

我希望这能帮助您找到答案。值将按行顺序排列。

如果这样可以解决您的问题,请告诉我。