3
對於kernlab::ksvm
中的分類任務,使用的默認SVM是C-svm(LIBSVM,Chang & Lin),它計算二進制分類任務。這可以通過計算多個1和多個二進制分類器並彙總結果來擴展到多類問題。本地多類別分類通過spoc-svm(Crammer,Singer)和kbb-svm(Weston,Watkins)支持。kernlab中的概率模型:: ksvm
這些在kernlab
經由type
參數在ksvm
(見?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
已在函數調用中指定。至少,這似乎是一個有問題的錯誤消息。