我正在嘗試使用 caret 包構建 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
結果表明sigma=0.1263203,C=4。我們如何使用調整后的引數構建 SVM 模型?
uj5u.com熱心網友回復:
從包檔案中的此頁面:caret
在模型調整值已知的情況下,
train可用于將模型擬合到整個訓練集,而無需任何重采樣或引數調整。使用method = "none"選項 intrainControl可以使用。
在你的情況下,這看起來像:
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可以。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/511428.html
