- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于kernlab::ksvm
中的分类任务,使用的默认SVM是C-svm(LIBSVM,Chang & Lin),它计算二元分类任务。通过计算多个一对多二元分类器并聚合结果,可以将其扩展到多类问题。通过 spoc-svm(Crammer、Singer)和 kbb-svm(Weston、Watkins)支持 native 多类分类。
这些在 kernlab
中通过 ksvm
中的 type
参数得到支持(请参阅 ?kernlab::ksvm
) :
ksvm(..., type= "C-svc", ...)
ksvm(..., type= "spoc-svc", ...)
ksvm(..., type= "kbb-svc", ...)
但是,预测概率只能通过 C-svm 获得。为什么?这是执行中的错误吗?
library(kernlab)
data(iris)
# default - C-svc allows for a prob.model
k1 <- ksvm(Species ~. ,data= iris,
type= "C-svc",
prob.model=TRUE,
kernel= "rbfdot", C= 1)
p1 <- predict(k1, iris, type= "probabilities") # works
#### non default, doesn't work:
k1 <- ksvm(Species ~. ,data= iris,
type= "spoc-svc",
prob.model=TRUE,
kernel= "rbfdot", C= 1)
p1 <- predict(k1, iris, type= "probabilities")
Error in .local(object, ...) :
ksvm object contains no probability model. Make sure you set the paramater prob.model in ksvm during training.
k1 <- ksvm(Species ~. ,data= iris,
type= "kbb-svc",
prob.model=TRUE,
kernel= "rbfdot", C= 1)
p1 <- predict(k1, iris, type= "probabilities")
Error in .local(object, ...) :
ksvm object contains no probability model. Make sure you set the paramater prob.model in ksvm during training.
文档没有注意到这一点或提供任何指导。正如您所看到的,参数 prob.model 已在函数调用中指定。至少,这似乎是一个有问题的错误消息。
最佳答案
kernlab
目前不支持除 C-svc
、nu-svc
和 C-bsvc< 之外的类型的概率估计
(check the code)。
if(type == "probabilities")
{
if(is.null(prob.model(object)[[1]]))
stop("ksvm object contains no probability model. Make sure you set the paramater prob.model in ksvm during training.")
if(type(object)=="C-svc"||type(object)=="nu-svc"||type(object)=="C-bsvc")
{
[...]
}
else
stop("probability estimates only supported for C-svc, C-bsvc and nu-svc")
}
<小时/>
问题是 native 多类解决方案缺乏作为对
输入的二元概率。实际上,编写自己的解决方案并不那么困难。
关于r - kernlab::ksvm 中的概率模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34323072/
我想在 R 中为 Ksvm 使用用户定义的内核函数。因此,我尝试制作一个 vanilladot 内核,并与“kernlab”中内置的“vanilladot”进行比较作为练习。 我按如下方式编写内核。
对于kernlab::ksvm中的分类任务,使用的默认SVM是C-svm(LIBSVM,Chang & Lin),它计算二元分类任务。通过计算多个一对多二元分类器并聚合结果,可以将其扩展到多类问题。通
我整天都在做这个。假设我有一个如下所示的训练数据 1.0000000 0.8260869 0 0.7333333 0.4666667 0 0.0000000 0.0000000 0 0.3076923
我想在 ksvm 中调整参数 C。现在我想知道这个 C 是如何定义的。C的定义是 cost of constraints violation (default: 1) this is the `C'-
我想在 ksvm 中调整参数 C。现在我想知道这个 C 是如何定义的。C的定义是 cost of constraints violation (default: 1) this is the `C'-
我想使用 R 中的 SVM 实现来进行一些回归。我已经尝试使用 e1071 中的 svm 但我受到那里的内核功能的限制。因此,我从 kernlab 转向 ksvm。但我有一个主要缺点,就是 kernl
我有纬度和经度,所以我需要将RBF内核重新定义为exp(-1/2||sophere distrance||^2),这意味着我需要自己重写一个核函数。 我写我的内核如下: round.kernel <-
关注 Invalid probability model for large support vector machines using ksvm in R : 我正在使用 R 中 kernlab 包
如何使ksvm模型知道数据集中的前100个数字都是来自一个传感器的所有时间序列数据,而接下来的100个数字都是来自另一个传感器的所有时间序列数据,对于六个单独的时间序列传感器输入?或者(也许更一般而言
我使用 R 中 kernlab 包中的 ksvm 来预测概率,并使用 predict.ksvm 中的 type="probabilities" 选项。但是,我发现有时使用 predict(model,
我正在尝试使用 R 中的 kernlab 库(ksvm 函数)实现一个新奇检测器。 这是我正在尝试做的一个简单示例: # Training data xxTrain <- matrix(rnorm(2
我使用以下语法调用 R 中 kernlab 包的 ksvm 方法 svmFit = ksvm(x=solTrainXtrans, y=solTrainYSVM, kernel="stringdot",
我正在尝试使用库(kernlab)中的 SVM 创建一个 2D 图,但它出现了 plot 函数 只适用于二元分类。我希望能够绘制 3 个(或更多)组,如下例所示。 我的数据结构就像虹膜数据一样,所以我
我正在尝试使用 R 中 kernlab 包的 ksvm 函数进行 epsilon-SVM 回归。我想将参数 C(正则化常数)和 epsilon(不敏感)作为向量(向量长度 = 训练数据长度)。但我不知
我是一名优秀的程序员,十分优秀!