r - 如何使用模型名称和变量列表来计算表及其预测?

标签 r regression

我目前正在对我的一个数据集进行回归分析,并认为为了比较不同的回归模型,我可以使用表格。我希望表格在第一列中有模型的名称,在第二列中有 1 个测试点的预测值。

我现在所做的是系统地命名这些模型如下:

library(caret)
model.lm <- train(formula, data=train, method='lm',...)
model.glmnet<- train(formula, data=train, method='glmnet',...)
...
Modelnames <- c('lm', 'glmnet',...)
results <- setNames(as.data.frame(matrix(nrow=n, ncol=2)), c('Model', 'Prediction'))
results$Model <- Modelnames
results$Prediction <- predict(model. , test) (?)

等几个模型。

现在,我想知道是否有任何方法可以使用 Modelnames为了快速对每个模型进行预测,而不必输入 predict()手工制作每个模型。有什么方法可以转换 Modelnamesmodel.格式?理想情况下,它会是一个单线,比如
results$Prediction <- predict(model.results[,1], test)

或类似的东西。这可能是错误的,但我希望你能明白我对那句话的意思。

最佳答案

使用多个模型时,我更喜欢使用带有列表列的数据框

例子:

require(caret)
require(tidyverse)

dt <- data.frame(method = c('lm', 'glmnet')) %>%
  mutate(model = map(method, ~ train(Sepal.Length ~ Petal.Length + Petal.Width, 
                                     data = iris, 
                                     method = .x))) %>%
  mutate(predicted = map(model, predict))

dt %>% select(method,predicted) %>%
  unnest()

最后一行给出了数据帧中两个模型的所有预测值。这可以很容易地更改为仅给出一个预测的值。

关于r - 如何使用模型名称和变量列表来计算表及其预测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57767226/

相关文章:

python - sklearn 树在分割期间将分类变量视为 float ,我应该如何解决这个问题?

r - plot.lm() : extracting numbers labelled in the diagnostic Q-Q plot

pandas - 使用交叉验证分数获得零分

r - 谷歌地图中的饼图使用 plotGoogleMaps

r - 删除数据框中的一行并取回数据框

r - 检查列是否包含来自另一列的值

matlab - 在 MATLAB 中向量化线性方程组的解

python - 如何从元素列表开始进行回归

r - 在 R 中的每个单元格中查找数据集中与字符串数据列表的关联

r - 突出显示跨地 block 具有恒定抖动的一些点(ggplot2)