gpt4 book ai didi

r - 使用 purrr 来拟合许多使用 tidymodels 的模型

转载 作者:行者123 更新时间:2023-12-05 02:27:41 26 4
gpt4 key购买 nike

仍然习惯于 stackoverflow,所以如果发布不正确,我们深表歉意。

最近,我发现自己不得不运行许多预测变量略有不同的模型来衡量模型性能(我确信有一种更优雅的方法可以做到这一点),我正在考虑创建一个函数或使用 map 来做一些繁重的工作。

这里有两个代表来说明我的困境

这按预期工作:

library(tidymodels)
workflow() %>%
add_model(linear_reg()) %>%
add_formula(mpg ~ hp) %>%
fit(mtcars)

但是,创建一个包含我想使用的各种其他预测变量的向量并尝试通过它进行映射是行不通的(产生错误:在 data 中找不到以下预测变量:' .x'.)

library(tidymodels)

preds <- c("disp", "hp", "wt")

map(preds, ~workflow() %>% add_model(linear_reg()) %>% add_formula(mpg ~ .x) %>% fit(mtcars))

我怀疑这可能是由于我正在努力寻找我认为是一个相当普遍的问题的解决方案的整洁评估?

最佳答案

我们可以使用pastereformulate 来构建公式

library(tidymodels)
library(purrr)
modlst <- map(preds,
~workflow() %>%
add_model(linear_reg()) %>%
add_formula(reformulate(.x, response = 'mpg')) %>%
fit(mtcars))

-输出

> modlst
[[1]]
══ Workflow [trained] ════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
Preprocessor: Formula
Model: linear_reg()

── Preprocessor ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
mpg ~ disp

── Model ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Call:
stats::lm(formula = ..y ~ ., data = data)

Coefficients:
(Intercept) disp
29.59985 -0.04122


[[2]]
══ Workflow [trained] ════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
Preprocessor: Formula
Model: linear_reg()

── Preprocessor ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
mpg ~ hp

── Model ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Call:
stats::lm(formula = ..y ~ ., data = data)

Coefficients:
(Intercept) hp
30.09886 -0.06823


[[3]]
══ Workflow [trained] ════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
Preprocessor: Formula
Model: linear_reg()

── Preprocessor ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
mpg ~ wt

── Model ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Call:
stats::lm(formula = ..y ~ ., data = data)

Coefficients:
(Intercept) wt
37.285 -5.344

关于r - 使用 purrr 来拟合许多使用 tidymodels 的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73005446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com