gpt4 book ai didi

r - 在 group_by 之后用 dplyr 拟合几个回归模型并将得到的模型应用到测试集中

转载 作者:行者123 更新时间:2023-12-02 17:22:35 25 4
gpt4 key购买 nike

我有一个大数据集,我想根据特定变量的值(在我的案例生命周期中)对其进行分区,然后对每个分区运行逻辑回归。按照@tchakravarty 在Fitting several regression models with dplyr 中的回答我写了下面的代码:

lifetimemodels = data %>% group_by(lifetime) %>% sample_frac(0.7)%>%
do(lifeModel = glm(churn ~., x= TRUE, family=binomial(link='logit'), data = .))

我现在的问题是如何使用生成的逻辑模型来计算其余数据(未选择的 0.3 部分)的 AUC,这些数据应再次按生命周期分组?

提前致谢!

最佳答案

您可以调整您的dplyr 方法以使用tidyrpurrr 框架。您查看分组/嵌套,以及 mutatemap 函数来创建列表框架来存储您的工作流程。

您正在寻找的测试/训练拆分是 modelr 的一部分,该软件包是为协助在 purrr 框架内建模而构建的。特别是 cross_vmccross_vkfold 函数。

一个使用 mtcars 的玩具示例(只是为了说明框架)。

library(dplyr)
library(tidyr)
library(purrr)
library(modelr)

analysis <- mtcars %>%
nest(-cyl) %>%
unnest(map(data, ~crossv_mc(.x, 1, test = 0.3))) %>%
mutate(model = map(train, ~lm(mpg ~ wt, data = .x))) %>%
mutate(pred = map2(model, train, predict)) %>%
mutate(error = map2_dbl(model, test, rmse))

这个:

  1. 乘坐地铁
  2. 嵌套到 cyl 的名为 data 的列表框架中
  3. 通过将 crossv_mc 映射到每个元素,将每个 data 分成训练集,然后使用 unnest 进行 testtrain 列出列。
  4. lm 模型映射到每个 train,将其存储在 model
  5. predict 函数映射到 modeltrain 并存储在 pred
  6. rmse 函数映射到 modeltest 集并存储错误。

可能有比我更熟悉工作流程的用户,所以请更正/详细说明。

关于r - 在 group_by 之后用 dplyr 拟合几个回归模型并将得到的模型应用到测试集中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41575252/

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