Как мне установить, какой уровень является «событием» в моей переменной результата с помощью tidymodels? - PullRequest
0 голосов
/ 02 августа 2020

Я использую для машинного обучения и хочу предсказать двоичный ответ / результат. Как мне указать, какой уровень результата является «событием» или положительным случаем?

Это происходит в рецепте или где-то еще?


##split the data
anxiety_split <- initial_split(anxiety_df, strata = anxiety)


anxiety_train <- training(anxiety_split)
anxiety_test <- testing(anxiety_split)


set.seed(1222) 
anxiety_cv <- vfold_cv(anxiety_train, strata = anxiety)

anxiety_rec <- recipe(anxiety ~ ., data = anxiety_train, positive = 'pos') %>%
  step_corr(all_numeric()) %>%
  step_dummy(all_nominal(), -all_outcomes()) %>%
  step_zv(all_numeric()) %>%
  step_normalize(all_numeric())

1 Ответ

1 голос
/ 02 августа 2020

Вам не нужно устанавливать, какой уровень вашей переменной результата является «событием», пока не придет время оценить вашу модель. Это можно сделать с помощью аргумента event_level большинства функций критериев . Например, узнайте, как это сделать для yardstick::roc_curve():

library(yardstick)
#> For binary classification, the first factor level is assumed to be the event.
#> Use the argument `event_level = "second"` to alter this as needed.
library(tidyverse)

data(two_class_example)


## looks good!
two_class_example %>%
  roc_curve(truth, Class1, event_level = "first") %>%
  autoplot()



## YIKES!! we got this backwards
two_class_example %>%
  roc_curve(truth, Class1, event_level = "second") %>%
  autoplot()

Created on 2020-08-02 by the пакет REPEX (v0.3.0.9001)

Обратите внимание на сообщение при запуске для критерия; первым уровнем фактора считается событие. Это похоже на то, как действует база R. Вам нужно беспокоиться только о event_level, если ваше «событие» не является первым уровнем фактора.

...