我正在尝试使用插入符号包构建SVM模型。在调整了参数之后,我们如何使用最佳参数来构建模型,这样我们在未来使用模型时就不需要调整参数了?谢谢
library(caret)
data("mtcars")
set.seed(100)
mydata = mtcars[, -c(8,9)]
model_svmr <- train(
hp ~ .,
data = mydata,
tuneLength = 10,
method = "svmRadial",
metric = "RMSE",
preProcess = c('center', 'scale'),
trControl = trainControl(
method = "repeatedcv",
number = 5,
repeats = 2,
verboseIter = TRUE
)
)
model_svmr$bestTune
结果表明,σ=0.1263203,C=4。我们如何使用调整后的参数来建立SVM模型?
来自caret
包文档中的此页面:
在模型调整值已知的情况下,可以使用
train
将模型拟合到整个训练集,而无需任何重新采样或参数调整。可以使用trainControl
中的method = "none"
选项。
在您的情况下,这看起来像:
library(caret)
data("mtcars")
set.seed(100)
mydata2 <- mtcars[, -c(8, 9)]
model_svmr <- train(
hp ~ .,
data = mydata,
method = "svmRadial",
trControl = trainControl(method = "none"), # Telling caret not to re-tune
tuneGrid = data.frame(sigma=0.1263203, C=4) # Specifying the parameters
)
其中我们已经移除了与调谐相关的任何参数,即tunelength
、metric
和preProcess
。
请注意,
plot.train
、resamples
、confusionMatrix.train
和其他几个函数将不适用于此对象,但predict.train
和其他函数将适用。