小编use*_*581的帖子

R:使用自定义内核(用户定义内核)的 SVM 性能在 kernlab 中不起作用

我正在尝试使用用户定义的内核。我知道 kernlab 在 R 中提供用户定义的内核(自定义内核函数)。我使用了数据垃圾邮件,包括包 kernlab。(变量数=57 示例数=4061)

我定义了内核的形式,

kp=function(d,e){

as=v*d
bs=v*e
cs=as-bs
cs=as.matrix(cs)

exp(-(norm(cs,"F")^2)/2)
}

class(kp)="kernel"
Run Code Online (Sandbox Code Playgroud)

它是高斯核的变换核,其中v是关于每个变量的标准偏差向量的倒数的连续变化值,例如:

v=(0.1666667,........0.1666667)
Run Code Online (Sandbox Code Playgroud)

训练集定义了 60% 的垃圾邮件数据(保留不同类别的比例)。

如果数据的类型是垃圾邮件,则训练 svm 的数据类型 = 1

m=ksvm(xtrain,ytrain,type="C-svc",kernel=kp,C=10)
Run Code Online (Sandbox Code Playgroud)

但是这一步不起作用。它总是在等待回应。

所以,我问你这个问题,为什么?是不是因为例子的数量太多了?是否有任何其他 R 包可以为用户定义的内核训练 SVM?

r machine-learning svm kernlab

5
推荐指数
1
解决办法
2154
查看次数

标签 统计

kernlab ×1

machine-learning ×1

r ×1

svm ×1