问题标签 [r-recipes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
49 浏览

r - tune_grid 中的错误,没有适用于 prep R tidymodels 的方法

我使用我为我的一个包构建的自定义步进函数,它工作得很好,它位于包的本地副本中(尚未提交给 CRAN)链接到此处运行:step_hai_fourier

这是会话信息(我们可以看到 healthR.ai 0.0.2.9000 已加载):

这是我的脚本,显示prepand 'juice' 工作得很好:

控制台说:

到目前为止还不错,这是脚本的其余部分:

不知道为什么会这样,也不知道这是属于这里还是在食谱中,我把它放在这里是因为它在 tun_grid 内部失败了。

0 投票
1 回答
47 浏览

sparse-matrix - 如何将蓝图添加到 tidymodels 中的 workflow_set

我试图按照

链接 1 - 稀疏矩阵 https://www.tidyverse.org/blog/2020/11/tidymodels-sparse-support/

链接 2 - Workflow_sets https://www.tmwr.org/workflow-sets.html

我在将蓝图纳入工作流程集时遇到了麻烦。

在链接 2 中定义 workflow_set 的示例中

以及我们在链接 1 中将蓝图添加到工作流程中的方式

我在哪里以及如何在上面的 workflow_set 中添加“blueprint = sparse_bp”选项?

我的尝试是

运行赛车曲子给了我这个错误

谢谢,

0 投票
0 回答
40 浏览

r - NA 日期的配方 step_mutate 弄乱了非 NA

准备训练 tidymodels 的配方我想在 NA 时变异,但与其余日期混淆

0 投票
1 回答
43 浏览

r - step_mutate 与 textrecipes 标记列表

我正在使用 tidymodels 框架进行 NLP,利用 textrecipes 包,该包具有用于文本预处理的配方步骤。在这里,step_tokenize将字符向量作为输入并返回一个tokenlist对象。现在,我想使用 hunspell 包中的函数使用自定义函数对新的标记化变量执行拼写检查,以确保正确拼写,但出现以下错误(链接到拼写检查博客文章):

显然,tokenlists 不容易解析为字符向量。我注意到 的存在step_untokenize,但只是通过粘贴和折叠来解散令牌列表,这不是我需要的。

代表

我想要什么,但没有食谱

0 投票
1 回答
29 浏览

r - 使用 `recipes::step_dummy()` 时有没有办法指定参考变量?

有没有办法在创建虚拟变量时指定参考级别step_dummy()?我可以通过设置one_hot = TRUE然后删除参考列来做到这一点,但想知道是否可以在其内部step_dummy()指定

reprex 包于 2021-11-19 创建(v2.0.1)

0 投票
1 回答
17 浏览

tidymodels - Tidymodel 的食谱是否提供操作逻辑变量的功能?

我正在查看有关 Recipes 的文档,我找到了step_string2factorstep_num2factor但我找不到等效step_logical2factor的 . 我正在构建一个分类模型,需要将我的 T/F 结果转换为一个因子。这是否必须在预处理步骤中完成?如果是这样,为什么(提供预处理功能的配方不是重点吗?)?

0 投票
1 回答
29 浏览

r - 如何使用 purrr::map() 改变列表列以存储通过 recipe() 创建的“recipe”对象?

我正在尝试与dplyr::mutate()结合使用purrr::map()来创建一个“食谱”对象recipes::recipe()

如果我在tibble上下文中执行此操作,则效果很好:

相比之下:

错误:mutate()列有问题iris_recipe
iris_recipe = map(.x = subset_training, .f = ~recipe(x = .x, Species ~ .))
未找到 x 对象“物种”


如何使用map()创建包含“recipe”对象的新列表列?

所需的输出
为了演示,我想得到这个:

0 投票
2 回答
72 浏览

r - 如何将 `recipes::step_dummy()` 翻译成 `dplyr`/`tidyr` 代码?

我试图弄清楚如何step_dummy()recipes包中争吵数据。尽管有此功能的参考页面,但我仍然无法理解如何使用tidyverse我知道的“常规”工具来完成它。这是一些基于recipesrsample包的代码。我想实现相同的数据输出,但只使用dplyr/tidyr工具。

我为此演示选择了diamonds数据集。ggplot2

我的问题是,在给定的情况下,我们如何通过使用or (并且可能)函数d_training来获得与 相同的输出?我看过这样的帖子但它们似乎不适合当前的情况。d_training_dummied_using_recipedplyrtidyrforcats


编辑


显然,step_dummy()只对cut列进行操作,这是因为我们指定了all_nominal(). 事实上,cut是 中唯一的名义变量d_training。我认为这些cut_*列对应于 的级别cut,但后来我跑了:

其中显示 6 个级别,而只有 4cut_*列。所以这是理解正在发生的事情的一个限制。此外,这些值cut_*是如何生成的?


编辑 2


我遇到了最相关的小插曲如何在食谱中处理分类预测?它直接讨论了这个话题。

R 中的对比函数是一种将具有分类值的列转换为一个或多个代替原始值的数字列的方法。这也可以称为编码方法或参数化函数。

默认方法是使用“参考单元”参数化创建虚拟变量。这意味着,如果因子有 C 个水平,则将创建 C - 1 个虚拟变量,并且除第一个因子水平之外的所有变量都被放入新列

关于级别数与cut_*列数,小插图明确表示:

请注意,列名不引用 [...] 变量的特定级别。此对比函数具有可涉及多个级别的列;特定于级别的列没有意义。

但最终没有示例如何使用常规工具(不在recipes上下文中)进行相同的操作。所以我最初的问题仍未解决。

0 投票
1 回答
61 浏览

r - 使用 R `recipes` 包预处理数据:如何按数字列中的模式进行估算(以使用 xgboost 拟合模型)?

我想xgboost用于分类问题,两个预测变量(几个)是二进制列,也恰好有一些缺失值。在用 拟合模型之前xgboost,我想通过在每个二进制列中输入模式来替换那些缺失值。

我的问题是我想将这种估算作为tidymodels配方”的一部分。也就是说,不使用典型的数据整理程序,例如dplyr//等tidyrdata.table在配方中进行插补应防止“信息泄漏”。

尽管该recipes包提供了许多step_*()专为数据预处理而设计的功能,但我无法找到一种方法来按模式对数字二进制列进行所需的插补。虽然有一个名为 的函数step_impute_mode(),但它只接受名义变量(即类factorcharacter)。但我需要我的二进制列保持数字,以便它们可以传递给xgboost引擎。

考虑以下玩具示例。我从这个参考页面中获取它并稍微更改了数据以反映问题。

创建玩具数据

使用 tidymodels 工具设置模型规范和预处理配方

拟合模型

拟合失败是因为data_train$x1data_train$x2成为每个因素step_bin2factor(x1, x2)。这就是我目前的收获:一方面,xgboost除非所有数据都是数字,否则我无法拟合模型;另一方面,除非数据是因子/字符,否则我不能按模式进行估算。

虽然有一种构建自定义step_*()函数的方法,但它有点复杂。所以我首先想联系一下,看看是否有我可能遗漏的微不足道的解决方案。我认为我目前使用xgboost二进制预测器的情况似乎很主流,我不想重新发明轮子。

0 投票
0 回答
41 浏览

r - 如何处理时间序列配方中的外部回归量?

在时间序列中,预测外部回归变量可以产生很大的不同。目前我想使用模型时间框架来跟踪外部回归器的影响。

但是,到目前为止,我找不到有关此主题的任何有用信息。我才发现,你可以在你的食谱中添加带有“+”的回归变量。

在我的食谱中添加变量 Transactions(每天的交易数和商店)和 Open_Closed(1 = 商店已关闭,0 = 商店已打开)后,我发现对预测没有影响。我怎样才能做到这一点?

一些代表数据: