【发布时间】:2018-02-21 20:53:48
【问题描述】:
我尝试在R 中安装caret 包中的最小二乘支持向量机,但我无法让它工作。即使对于像这样的极端简单的例子,它也会失败:
library(caret)
library(tidyverse)
data("iris")
#to make this example a binary classification task
iris <- iris %>% filter(Species %in% c("setosa", "versicolor")) %>%
mutate(Species = droplevels(Species))
svmls <- train(Species ~ .,
iris,
method = "lssvmLinear",
preProc = c("center", "scale")
)
有几个这样的警告:
In eval(xpr, envir = envir) :
model fit failed for Resample09: tau=0.0625 Error in if (truegain[k] < tol) break :
missing value where TRUE/FALSE needed
同时从kernlab直接调用lssmv函数成功:
library(kernlab)
svmls2 <- lssvm(Species~.,data=iris)
svmls2
如果你能猜出什么是错误的,我真的很感激。
【问题讨论】:
-
可以直接用
lssvm得到模型吗?我们怎么知道这是caret问题? -
@topepo 抱歉,我没有提到我尝试过。见编辑。
-
下一个问题是您能否将它直接安装在它失败的单个折叠上。然后预测坚持。我倾向于发现这些错误是由于在给定重采样的训练集中省略了某个类的重采样造成的,因此当您预测模型不知道如何处理该类时。
-
我不知道如何获得失败的折叠。那么如何获取例如 Resample09 的数据集呢?
标签: r machine-learning svm r-caret