0

R tidymodels レシピで step_nzv を使用して、分散は小さいが連続値を持つ数値属性を除外するのに問題があります。私には、このステップは、一意の値の数と、最も一般的な値と 2 番目に一般的な値の比率を計算するため、公称値にのみ適用されるようです。しかし、私はほとんどどこでもゼロに近く、決してゼロにならない属性を持っています。最初にビンに入れる必要がありますか (同じサイズのビンで離散化するとすべてが変わります)? 以下のコードには、最小限の例があります。low_variance_num と low_variance_nom の両方の列が除外されることを期待していますが、これは起こりません。

library(tidymodels)

data <- tibble(num = seq(1000),rand = runif(1000)) %>% 
  mutate(low_variance_num = ifelse(num == 1, 1, rand/10000),
         low_variance_nom = ifelse(num == 1, 1, 0))

data
var(data$low_variance_num)
var(data$low_variance_nom)

recipe <- recipe(formula = num ~., data = data) %>% 
  update_role("num", new_role = "label") %>%
  step_nzv(all_predictors(), freq_cut = 995/5, unique_cut = 10) %>% # 5min bis hier
  prep()
summary(recipe)

PS: 式を提供せずにレシピを使用する方法はありますか? この場合、式はナンセンスです。

4

1 に答える 1