R 插入符号获取训练和训练;从模型到绘图的cv预测
我训练了一个简单的模型:R 插入符号获取训练和训练;从模型到绘图的cv预测,r,r-caret,R,R Caret,我训练了一个简单的模型: mySim <- train(Event ~ ., method = 'rf', data = train, tuneGrid = tg) mySimcarets::train只保存保持预测。如果指定savePredictions=“all”,它将保存所有超参数组合的保留预测。但是,它不会保存列车组预测。您可以在事后生成它们,并知道哪些索引用于保留。此信息是火车返回的对象的
mySim <- train(Event ~ .,
method = 'rf',
data = train,
tuneGrid = tg)
mySimcarets::train
只保存保持预测。如果指定savePredictions=“all”
,它将保存所有超参数组合的保留预测。但是,它不会保存列车组预测。您可以在事后生成它们,并知道哪些索引用于保留。此信息是火车返回的对象的model$pred
插槽mlr
软件包有一个选项,可以同时保持保持和训练预测以及度量
以下是如何使用mlr库执行请求操作的示例:
library(mlr)
library(mlbench) #for the data set
我将使用声纳数据集:
data(Sonar)
创建任务:
task <- makeClassifTask(data = Sonar, target = "Class")
设置要调整的选项和范围:
ps <- makeParamSet(
makeIntegerParam("size", lower = 3, upper = 5),
makeNumericParam("decay", lower = 0.1, upper = 0.2))
关于geom_平滑的一系列警告,因为每个拟合只有3个点
还有一个示例,说明如何在按住样本的插入符号中执行此操作:
library(caret)
创建一个调谐控件
ctrl <- trainControl(
method = "repeatedcv",
number = 5,
repeats = 2,
classProbs = TRUE,
savePredictions = "all",
returnResamp = "all",
summaryFunction = twoClassSummary
)
插入符号train
仅保留保持预测。如果指定savePredictions=“all”
,它将保存所有超参数组合的保留预测。但是,它不会保存列车组预测。您可以在事后生成它们,并知道哪些索引用于保留。此信息是train
返回的对象的model$pred
插槽。如果你愿意,我可以给你看。但要选择最佳的超参数,只需要红色曲线。mlr库有一个选项,可以同时保持和训练预测和指标。当我检查时,$pred模型返回NULL
。你能把我和那个MLR软件包联系起来吗。感谢添加了mlr
和caret
的示例。mlr教程位于返回的模型对象中,我是否有权访问每个模型?我在model$pred
中找到了索引,但不确定如何对隐藏层大小为10的模型与大小为5的模型进行预测。@Sam返回的对象不保存所有模型,只保存所有数据上的最后一个模型。但是,您可以将所有模型预测保存在保留数据上,以计算事后的任何度量。我认为训练集预测将保存到mySim$finalModel$fitted
?@GregV这对于某些模型(如lm
和glm
)是特定方法(模型)的一个功能,而不是插入符号功能。
cross_val <- makeResampleDesc("RepCV",
reps = 2, folds = 5, stratify = TRUE, predict = "both")
ctrl <- mlr::makeTuneControlGrid(resolution = 4L)
res.mbo <- tuneParams(lrn, task, cross_val, par.set = ps, control = ctrl,
show.info = FALSE, measures = list(auc, setAggregation(auc, test.sd), setAggregation(auc, train.mean), setAggregation(auc, train.sd)))
res <- mlr::generateHyperParsEffectData(res.mbo)$data
library(tidyverse)
res %>%
gather(key, value, c(3,5)) %>%
mutate(key = as.factor(key)) %>%
ggplot()+
geom_point(aes(x = size, y = value, color = key))+
geom_smooth(aes(x = size, y = value, color = key))+
facet_wrap(~decay)
library(caret)
ctrl <- trainControl(
method = "repeatedcv",
number = 5,
repeats = 2,
classProbs = TRUE,
savePredictions = "all",
returnResamp = "all",
summaryFunction = twoClassSummary
)
grid <- expand.grid(size = c(4, 5, 6), decay = seq(from = 0.1, to = 0.2, length.out = 4))
fit <- caret::train(Sonar[,1:60], Sonar$Class,
method = 'nnet',
tuneGrid = grid,
metric = 'ROC',
trControl = ctrl)
fit$results %>%
ggplot()+
geom_point(aes(x = size, y = ROC))+
geom_smooth(aes(x = size, y = ROC))+
facet_wrap(~decay)