我希望使用用户定义的内核。我知道在R中,kernlab提供了用户定义的内核(自定义内核函数)。我使用了包含kernlab软件包的spam数据。 (变量数量= 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"
这是高斯核函数的转换核,其中v
是每个变量标准差向量的倒数连续变化的值,例如:
v=(0.1666667,........0.1666667)
训练集包含60%的垃圾邮件数据(保持不同类别的比例)。
如果数据类型是垃圾邮件,则将数据类型设置为1以训练SVM。
m=ksvm(xtrain,ytrain,type="C-svc",kernel=kp,C=10)
但是这一步骤并没有起作用。它总是在等待响应。
因此,我向您询问这个问题,为什么?是因为示例数量太多了吗?是否有其他的R包可以训练用户定义内核的SVM?