使用带有预计算内核的kernlab包时出错
我一直在使用使用带有预计算内核的kernlab包时出错,r,svm,predict,kernlab,R,Svm,Predict,Kernlab,我一直在使用kernlab软件包,在使用带有预计算内核的ksvm/predict函数时遇到了一些问题 我收到的错误消息是: > ksvm.mod <- ksvm(trainingset.outer, traininglabels.outer, kernel = "matrix",type="C-svc", C = 60, prob.model = TRUE) > temp <- predict(ksvm.mod, test.kernel.outer) Error in
kernlab
软件包,在使用带有预计算内核的ksvm
/predict
函数时遇到了一些问题
我收到的错误消息是:
> ksvm.mod <- ksvm(trainingset.outer, traininglabels.outer, kernel = "matrix",type="C-svc", C = 60, prob.model = TRUE)
> temp <- predict(ksvm.mod, test.kernel.outer)
Error in .local(object, ...) : test vector does not match model !
然后,我查看了根据模型存储的列,发现如下内容:
> ncol(xmatrix(ksvm.mod)[[1]])
Error in xmatrix(ksvm.mod)[[1]] : subscript out of bounds
> xmatrix(ksvm.mod)[[1]]
Error in xmatrix(ksvm.mod)[[1]] : subscript out of bounds
> xmatrix(ksvm.mod)
<0 x 0 matrix>
> ?xmatrix
> ksvm.mod
Support Vector Machine object of class "ksvm"
SV type: C-svc (classification)
parameter : cost C = 60
[1] " Kernel matrix used as input."
Number of Support Vectors : 831
Objective Function Value : -211534.1
Training error : 0.257677
Probability model included.
> ncol(xmatrix(gene)[[1]]) # for dataframes used without precomputed kernels
[1] 172
ncol(xmatrix(ksvm.mod)[[1]]
xmatrix(ksvm.mod)[[1]]中出错:下标超出范围
>xmatrix(ksvm.mod)[[1]]
xmatrix(ksvm.mod)[[1]]中出错:下标超出范围
>xmatrix(ksvm.mod)
>?X矩阵
>ksvm.mod
“ksvm”类的支持向量机对象
SV类型:C-svc(分类)
参数:成本C=60
[1] “用作输入的内核矩阵。”
支持向量数:831
目标函数值:-211534.1
训练错误:0.257677
包括概率模型。
>ncol(xmatrix(基因)[[1]])#用于无预计算内核的数据帧
[1] 172
我猜模型没有存储任何对象,我的理解正确吗?由于在web上没有使用带有预计算内核的包的好例子,所以我写信来寻求您的帮助
PS:如果需要,我会尽力提供测试数据 你做对了一半。predict对象只需要新数据和支持向量之间的核距离,但它本身不提取它们,您必须自己传递它们 试试这个:
ksvm.mod <- ksvm(trainingset.outer, traininglabels.outer, kernel = "matrix",type="C-svc", C = 60, prob.model = TRUE)
temp <- predict(ksvm.mod, test.kernel.outer[, SVindex(ksvm.mod))
ksvm.mod你做得对了一半。predict对象只需要新数据和支持向量之间的核距离,但它本身不提取它们,您必须自己传递它们
试试这个:
ksvm.mod <- ksvm(trainingset.outer, traininglabels.outer, kernel = "matrix",type="C-svc", C = 60, prob.model = TRUE)
temp <- predict(ksvm.mod, test.kernel.outer[, SVindex(ksvm.mod))
ksvm.mod
ksvm.mod <- ksvm(trainingset.outer, traininglabels.outer, kernel = "matrix",type="C-svc", C = 60, prob.model = TRUE)
temp <- predict(ksvm.mod, test.kernel.outer[, SVindex(ksvm.mod))