我正在测试回归问题中的kernlab
包。将'Error in .local(object, ...) : test vector does not match model !
对象传递给ksvm
函数时,获取predict
似乎是一个常见问题。但是我刚刚找到了不适用于我的问题的分类问题或自定义内核的答案(我使用内置的回归)。我的想法用完了,我的示例代码是:
data <- matrix(rnorm(200*10),200,10)
tr <- data[1:150,]
ts <- data[151:200,]
mod <- ksvm(x = tr[,-1],
y = tr[,1],
kernel = "rbfdot", type = 'nu-svr',
kpar = "automatic", C = 60, cross = 3)
pred <- predict(mod,
ts
)
答案 0 :(得分:3)
您忘记删除测试集中的y
变量,因此它会失败,因为预测变量的数量不匹配。这将有效:
predict(mod,ts[,-1])
答案 1 :(得分:1)
如果 ts 是数据框,则可以使用pred <- predict(mod, ts)
。
应该是
data <- setNames(data.frame(matrix(rnorm(200*10),200,10)),
c("Y",paste("X", 1:9, sep = "")))
tr <- data[1:150,]
ts <- data[151:200,]
mod <- ksvm(as.formula("Y ~ ."), data = tr,
kernel = "rbfdot", type = 'nu-svr',
kpar = "automatic", C = 60, cross = 3)
pred <- predict(mod, ts)