5

kernlab在回归问题中测试包。将对象'Error in .local(object, ...) : test vector does not match model !传递给函数时,这似乎是一个常见问题。但是,我刚刚找到了不适用于我的问题的分类问题或自定义内核的答案(我正在使用内置的回归)。我的想法在这里用完了,我的示例代码是:ksvmpredict

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
                )
4

2 回答 2

4

您忘记删除y测试集中的变量,因此由于预测变量的数量不匹配而失败。这将起作用:

predict(mod,ts[,-1])
于 2013-09-24T18:30:51.930 回答
1

pred <- predict(mod, ts)如果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)
于 2020-02-17T23:07:18.297 回答