Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 插入符号获取训练和训练;从模型到绘图的cv预测_R_R Caret - Fatal编程技术网

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)

mySim
carets::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)