r - 似乎无法删除食谱中的变量
问题描述
我是recipes
API 新手,遇到了一些问题。当我删除了某些我不感兴趣的功能时,为什么我不能bake
或我的食谱步骤?juice
set.seed(999)
train_test_split <- initial_split(mtcars)
mtcars_train <- training(train_test_split)
mtcars_test <- testing(train_test_split)
mtcars_train %>%
recipe(mpg ~ cyl + disp + hp + gear) %>%
step_rm(qsec, vs, carb) %>%
step_center(all_numeric()) %>%
step_scale(all_numeric()) %>%
prep(training = mtcars_train)
结果是:
Error in .f(.x[[i]], ...) : object 'qsec' not found
这很烦人,因为这意味着在应用步骤后,我需要在测试集和训练集上手动删除行:
rec_scale <- mtcars %>%
recipe(mpg ~ cyl + disp + hp + gear) %>%
step_center(all_numeric()) %>%
step_scale(all_numeric()) %>%
prep(training = mtcars_train)
train <- juice(rec_scale) %>%
select(-qsec, -vs, -carb)
test <- bake(rec_scale, mtcars_test) %>%
select(-qsec, -vs, -carb)
我想错了吗?我也可以事先过滤,但我认为我的食谱应该包括这样的东西。
解决方案
recipe()
您应该在调用中包含配方步骤中使用的所有列。如果它们不在配方中,则无法删除它们。
library(tidymodels)
#> ── Attaching packages ────────────────────────────── tidymodels 0.0.2 ──
#> ✔ broom 0.5.2 ✔ purrr 0.3.2
#> ✔ dials 0.0.2 ✔ recipes 0.1.6
#> ✔ dplyr 0.8.3 ✔ rsample 0.0.5
#> ✔ ggplot2 3.2.0 ✔ tibble 2.1.3
#> ✔ infer 0.4.0.1 ✔ yardstick 0.0.3
#> ✔ parsnip 0.0.3
#> ── Conflicts ───────────────────────────────── tidymodels_conflicts() ──
#> ✖ purrr::discard() masks scales::discard()
#> ✖ dplyr::filter() masks stats::filter()
#> ✖ dplyr::lag() masks stats::lag()
#> ✖ recipes::step() masks stats::step()
set.seed(999)
train_test_split <- initial_split(mtcars)
mtcars_train <- training(train_test_split)
mtcars_test <- testing(train_test_split)
rec <-
mtcars_train %>%
recipe(mpg ~ cyl + disp + hp + gear) %>%
step_center(all_numeric()) %>%
step_scale(all_numeric()) %>%
prep(training = mtcars_train)
summary(rec)
#> # A tibble: 5 x 4
#> variable type role source
#> <chr> <chr> <chr> <chr>
#> 1 cyl numeric predictor original
#> 2 disp numeric predictor original
#> 3 hp numeric predictor original
#> 4 gear numeric predictor original
#> 5 mpg numeric outcome original
由reprex 包(v0.2.1)于 2019 年 8 月 4 日创建
推荐阅读
- powershell - 使用文本文件循环 PowerShell 命令
- javascript - 玩笑测试因 refs 和 Form 而失败
- javascript - 如何在 JavaScript 矩阵运算中实现最近邻插值?
- c# - Microsoft.Office.Interop.Visio + 自动连接 + 箭头
- mongodb - 为什么这些 MongoDB 总和不加起来?
- amazon-web-services - AWS 和 Docker 映像
- javascript - Javascript 脚本不登录到浏览器控制台
- kubernetes - 无法使用 Helm 在 Kubernetes 集群中部署 Minio
- javascript - 为什么我的 HTML 选择不允许我访问选项?
- html - 图像会自动调整大小