问题标签 [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.
r - 如何将标准化数值变量(库(食谱))转换回 R 中的原始值
在放入决策树模型以预测结果之前,我通过 R 中的库(食谱)对数值变量进行了标准化。现在,我有了决策树,年龄是节点中的重要变量之一,例如 >1.5 和 <1.5。我想将 -1.5 转换回非标准化值,以便能够赋予它实际意义(如年龄 >50 或 </= 50 岁)。我已经搜索并找不到答案。
年龄是在 R 的食谱包中已标准化的变量之一。现在,我正在努力将最终模型中的标准化数据转换回非标准化值,以便能够赋予它实际意义。我怎样才能做到这一点?
r - UseMethod(“required_pkgs”)中的错误:没有适用于“required_pkgs”的方法应用于“工作流”类的对象
我正在关注 Jan Kirenz使用 Tidymodels 进行分类的教程。到目前为止一切都很顺利,直到我尝试使用函数评估模型fit_resamples()
。我不断收到错误消息Error in UseMethod("required_pkgs") : no applicable method for 'required_pkgs' applied to an object of class "workflow"
。
他在该部分中使用的代码是:
我尝试使用函数文档页面中的示例,但收到相同的错误消息。
有谁知道这里的问题是什么,我该如何解决?我一直找不到关于这个问题的任何提及。
这是我的sessionInfo()
:
r - 如何解释警告:Tidymodels 工作流程集中的“无调整参数”和“所有模型失败”
workflowsets
尝试使用以下软件包运行(调整)我的工作流集时,我遇到了一些警告和错误tidymodels
:
编码:
第 1 步:获取数据
不幸的是,我没有更多的空间在这里添加数据。我可以告诉你数据是
第 2 步:拆分数据
第 3 步:定义训练数据的重采样技术
第 4 步:定义模型指标
第 5 步:创建预处理配方
第 6 步:创建模型规范
第 7 步:设置工作流集
第 8 步:运行工作流集
r - 如何添加步骤以删除具有恒定值的列?
背景:我正在创建一个方法来清理和转换将由多个模型使用的时间序列数据。配方中的步骤之一是使用该step_corr()
函数删除相关的预测变量。
但是,由于数据集的性质,在使用滚动窗口进行交叉验证时,某些变量对于整个训练数据集可能具有恒定值,从而导致step_corr()
函数抛出警告。
问题陈述:在这种情况下,是否可以从相关步骤中排除这些变量?或者也许完全删除变量?
PS我知道我可以很容易地忽略警告并继续。但我正在寻找一种更清洁的方法/最佳实践建议。
r - step_mutate() 找不到函数 str_remove()
我有一个中间函数的配方,在包step_mutate()
支持的泰坦尼克数据集上执行文本数据转换。stringr
这组转换与rf_recipe %>% prep() %>% bake(new_data = NULL)
.
当我尝试在工作流中使用超参数调整和 10 倍交叉验证来拟合随机森林模型时,所有模型都失败了。.notes 列的输出明确表示列存在问题mutate()
:Title
找不到函数str_remove()
。
正如这篇文章所暗示的那样,我已经明确告诉 R str_remove 应该在 stringr 包中找到。为什么这不起作用,可能是什么原因造成的?
r - Tidymodels 配方中基于行的计算列
我有一个数据框如下:
ID | Col1 | 响应ID | Col3 | Col4 |
---|---|---|---|---|
1 | 蓝色的 | 729Ad | 3.2 | 一个 |
2 | 橙 | 295gS | 6.5 | 一个 |
3 | 红色的 | 729Ad | 8.4 | 乙 |
4 | 黄色 | 592Jd | 2.9 | 一个 |
5 | 绿色 | 937sa | 3.5 | 乙 |
我想计算一个新列 Col5,如果该行的 Col4 值为 A,并且数据集中某处存在另一列,则其值为 1,该行具有相同的 RespId 但 Col4 值为 B。否则为值是 0。然后我将删除 Col4 值为 B 的所有行,只保留那些具有 A 的行。我想使用 R tidymodels 配方包来做到这一点。我也想用数据框来做这一切。
这是在删除 Col4 值为 B 的行之前所需的输出表的样子:
ID | Col1 | 响应ID | Col3 | Col4 | Col5 |
---|---|---|---|---|---|
1 | 蓝色的 | 729Ad | 3.2 | 一个 | 1 |
2 | 橙 | 295gS | 6.5 | 一个 | 0 |
3 | 红色的 | 729Ad | 8.4 | 乙 | 0 |
4 | 黄色 | 592Jd | 2.9 | 一个 | 0 |
5 | 绿色 | 937sa | 3.5 | 乙 | 0 |
r - 将套索模型应用于配方时出现 NAs 错误
我试图将套索模型应用于我创建的食谱(使用recipes
包),但出现错误:
NAs由
lognet(xd, is.sparse, ix, jx, y, weights, offset, alpha, nobs, : NA/NaN/Inf in foreign function call (arg 5) 中的强制错误引入
这是我创建的食谱:
这是我应用模型的方式:
r - 创建配方并动态传递列名
我有一个简单地创建几个配方对象的函数。问题是在函数内部我必须重命名data.frame
/tibble
传递的列,以便我可以将recipes
.
出于明显的原因,我不想这样做,主要是,列名必须是其data.frame
本身的内容,否则它们将无法工作。
简单的例子:
我这样做的原因是因为我不能在配方函数本身内部使用动态名称,所以类似的东西rlang::sym(names(data_tbl)[[1]])
不起作用,也不像data_tbl[[1]]
. 我正在考虑使用类似的东西,step_rename()
但这需要您提前知道名称,并且它不能是配方步骤中的变量。但是,您可以将变量传递给类似的东西timetk::step_time_series_signature
我能想到的唯一另一件事是强制用户使用特定的列名,例如 Facebook Prophet R 库中的ds
和y
我还注意到,当我运行时,我在终端上得到了一些时髦的输出,rec_objs
我得到以下信息:
然而,当我这样做时:
它不会发生。
谢谢,
r-recipes - 是否有一个函数可以检索“配方”中变量的作用?
在recipe
中,您可以通过传递指定角色的字符串来指定变量将具有的角色,例如“结果”、“预测器”、“case_weight”、“ID”等。例如,iris
数据集变量具有以下角色:
如何检索特定变量的角色?我还没有找到这个功能。由于add_role()
, update_role()
,remove_role()
甚至has_role()
存在,我希望类似以下的事情是可能的:
有这样的功能吗?
r - 没有适用于类对象的“准备”方法
我正在构建一个自定义recipes
函数,并在尝试prep()
使用配方时出现错误。我收到以下错误:
当我将prep.step_hai_hyperbolic()
作为函数加载到全局环境中以便它显示在 RStudio 的环境区域中时,它就可以prep()
正常工作了。
这是整个函数和一个示例:
这是一个示例,如果没有将所有内容加载到当前会话环境中,它就无法工作:
将 rec_obj 输出到控制台:
准备时的错误:
会话信息: