首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tidymodels的Logistic回归:如何在event_level ()中设置last_fit ="second“?

tidymodels的Logistic回归:如何在event_level ()中设置last_fit ="second“?
EN

Stack Overflow用户
提问于 2021-07-28 13:31:01
回答 1查看 383关注 0票数 1

我正在建立一个逻辑回归模型,其中包含两个类别的结果变量: a_category / z_category,我有以下问题:

  1. 我对使用自变量来预测"z_category“很感兴趣,因此我的参考类别应该是"a_category”。"a_category“是变量中的第一个类别,因此没有必要重新调整我的结果类别,这可能是代码:

分裂:

代码语言:javascript
复制
splits<- initial_split(df1, strata = c(outcome), prop = 3/4)
training_set <- training(splits)
test_set  <- testing(splits)

配方:

代码语言:javascript
复制
      glm_rec <-
      recipe(outcome~., data=training_set) %>% 
      step_zv(all_predictors()) %>% 
      step_normalize(all_predictors()) %>% 
      step_dummy(all_nominal(), -all_outcomes())

型号规格:

代码语言:javascript
复制
glm_spec <- 
  logistic_reg() %>% 
  set_engine("glm") 

工作流程:

代码语言:javascript
复制
glm_final_wf <- 
  workflow() %>% 
  add_model(glm_spec) %>% 
  add_recipe(glm_rec)

我说的对吗?

  1. 内部验证和roc曲线:我使用event_level = "second“来计算度量,使用标尺函数计算roc曲线:
代码语言:javascript
复制
# metrics
glm_internalval_res <- glm_final_wf %>% 
  fit_resamples(
    resamples = vfold_cv(training_set, 
                                  v= 10, 
                                  repeats = 2, 
                                  strata = outcome),
    control = control_resamples(save_pred = TRUE, event_level = "second"),
    metrics = metric_set(
      yardstick::roc_auc, 
      yardstick::accuracy,
      yardstick::sens, 
      yardstick::spec,
      yardstick::precision, 
      yardstick::ppv,
      yardstick::npv)
      )

# ROC curve
glm_internalval_res %>%
  collect_predictions()%>%
  group_by(id, id2) %>%
  roc_curve(truth=outcome, 
            .pred_z_category,
            event_level = "second"
            ) %>%
   autoplot()

我说的对吗?

  1. 外部验证,last_fit。我找不到如何设置event_level=“第二”。当我尝试:
代码语言:javascript
复制
glm_externalval_res <- 
  last_fit(glm_final_wf, 
           splits,
           metrics = metric_set(yardstick::roc_auc, 
      yardstick::accuracy,
      yardstick::sens, 
      yardstick::spec,
      yardstick::precision, 
      yardstick::ppv,
      yardstick::npv)
  )

使用这个块,度量被引用到第一类"a_category",我认为这是不正确的。

我想知道如何向last_fit表明我感兴趣的类别是"z_category“。我在包裹里找不到答案。

谢谢。

拉斐尔。

EN

回答 1

Stack Overflow用户

发布于 2022-09-20 18:45:26

一个选项是为第二个事件设置全局选项:

前0.0.7

options(yardstick.event_first = FALSE)

0.0.7员额:

options(yardstick.event_level = 'second')

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68561374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档