问题标签 [tidymodels]

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 回答
1292 浏览

r - 将 Tidymodels 进程映射到列表/分组或嵌套

我真的很喜欢 tidymodels,但我不清楚如何将模型工作流适应嵌套 group by 之类的东西。例如,tidyr 在类似 mtcars 的圆柱体上勾勒出一个简单的嵌套,然后为每个圆柱体拟合一个独特的线性 reg 模型。我正在尝试基于诸如圆柱体之类的东西来拟合数百个独特的模型(可能是随机森林),但使用的是 tidymodels 工作流程(数据拆分、配方、预测)。

以下是 tidyr 页面上作为简单嵌套/拟合线性 reg 概述的内容:

有没有办法做类似下面的事情,但基于列中的 group_by 或 nest 属性?如果可能,则需要将每个预测和/或准确性组合并存储在一个数据帧中。我尝试将数据拆分为嵌套数据框,但它没有用。我觉得这是一个 purrr 地图问题,但不清楚 tidymodels 是否已经支持:

感谢帮助/建议/指导。

0 投票
1 回答
1140 浏览

r - 在 tidy 建模框架中集成变量重要性图

有人可以告诉我如何在整洁的建模框架中生成基于排列的变量内插吗?目前,我有这个:

这会产生:

在此处输入图像描述

但是,我想要这样的东西

在此处输入图像描述

我不清楚这个相当新的整洁建模框架如何与当前的 VIP 包集成。任何可以提供帮助的人。谢谢!

https://koalaverse.github.io/vip/articles/vip.html(VIP包的API)。

0 投票
1 回答
136 浏览

tidymodels - Tidymodels 食谱 - 添加一个仅应用特征工程功能的步骤?

许多特征工程步骤是不需要在数据集上“训练”的转换,例如,创建一个新列 x2 作为 x2=2*x1。这些“静态变换”与“可训练”变换不同,例如贬低和重新缩放。

我不想依赖诸如 step_mutate() 之类的食谱包函数,而是想定义一个函数,例如 do_static_transforms(),它接受一个小标题并输出一个转换后的小标题。我想将此作为食谱的第一步。或者,我想将此添加为工作流程中的第一步(另一个 tidymodels 包)。

这是一个明智和可能的事情吗?

0 投票
2 回答
281 浏览

r - 在 tidymodels 中从 rsample 实现 loo_cv

我是 tidymodels 语法的新手,想loo_cv在 tidymodel 框架中使用 from rsample 实现遗漏交叉验证。但是,实现似乎不同于vfold_cv,我找不到任何有用的实现loo_cv. 是的,我查看了帮助页面的示例

我想从fit_resamples()帮助页面模拟如下所示的类似类型的工作流,但我找不到类似的loo_cv. 修改下面的代码loo_cv通知我fit_resamples不支持loo_cv但我不知道什么支持它。我认为正确的解决方案将涉及fit_split(),但我也无法让它发挥作用。尽管我认为解决方案将非常简单,但我一直在谷歌搜索并生成错误消息几个小时。提前感谢您的任何指导!

0 投票
1 回答
704 浏览

r - Tidymodels Logistic Regression 获取系数和标准误差

有没有办法在整洁的模型中获得逻辑回归的标准误差和 p 值?

我可以通过下面的代码获得系数..但我想计算每个特征的优势比,我也需要标准误差..

通常你可以通过调用summary()glm 对象来做到这一点,但我在这里尝试使用 tidymodels。

0 投票
1 回答
74 浏览

r - R子集内部级别嵌套数据框

在使用 rsample、tidymodels 时,我使用以下代码创建了重新采样(见下文)。虽然我不想评估具有所有水平位置的模型,但在本例中从 1 到 5。假设我只想评估 4 和 5 水平位置的模型。我现实生活中的问题有点像这样。所以我不希望我的模型在所有水平位置都出现错误。

所以我的选择是使用 rsample::rolling_origin() 然后子集评估索引。我可以用 for 循环来做到这一点......但我对使用另一种方式感到好奇。我想用 purrr 来做。我知道我可能应该移动一个,因为它的工作原理是这样的……但这让我很生气。

如何使用 purrr 的函数引用第三个内部级别?

谢谢

0 投票
1 回答
966 浏览

r - tidymodels:使用 xgboost 模型预测新数据时出错

我训练了两个 xgboost 模型。在像这样制定模型规范之后,一个人在没有重新采样调用 fit() 的情况下进行了训练......

..它工作得很好,我的预测已经完成。

另一个接受了重采样训练,使用 tune::tune_grid() 设置工作流。一旦 tune_grid 训练了模型,我使用 tune::select_best() 选择了最佳模型,使用 tune::finalize_workflow() 完成了工作流,并使用训练数据上的 fit() 调用提取了我的最终模型,最后是 workflow::pull_workflow_fit ()。但是,当我想用​​这些模型对新数据进行预测时,会出现以下错误:

在这两种情况下,新数据都是完全相同的 tibble。有人知道这个问题的答案吗?

0 投票
1 回答
252 浏览

r - 从 fit_resamples() 结果中提取模型对象的最快方法

这个问题如果是 tidymodels 用户,如果你很懒,跳过整个文本直接跳到下面的粗体问题

我正在寻找从拟合的重采样(tune::fit_resample())中提取我的欧洲防风草模型对象的最有效方法。

当我想用交叉验证训练模型时,我可以选择tune::tune_grid()oder fit_resamples()

假设我知道我的算法的最佳参数,所以我不需要任何参数 tunig,这意味着我决定使用fit_resamples(). 如果我决定继续,tune_grid()我通常会设置一个工作流程,因为我在 tune_grid 运行后评估不同的模型:我会去探索tune::show_best()tune::select_best()提取模型的最佳参数。然后我去tune::finalize_workflow()workflows::pull_wokrflow_fit()提取我的模型对象。此外,当我想查看预测时,我会tune::last_fit()选择tune::collect_predictions()

当我使用 时,所有这些步骤似乎都是多余的fit_resamples(),因为我基本上只有一个具有稳定参数的模型。所以上述所有这些步骤都不是必需的,但我必须通过它们。我吗?

执行后fit_resamples(),我得到一个包含有关 .splits、.metrics、.notes 等信息的小标题。所以我的问题真的归结为:

  • 从输出 tibblefit_resamples()到我的最终欧洲防风模型对象的最快方法是什么?
0 投票
3 回答
1511 浏览

r - 用扫帚按组从回归中检索整齐的结果

这个问题的答案清楚地解释了如何在通过 dplyr 管道运行回归时按组检索整齐的回归结果,但解决方案不再可重现。

如何结合使用 dplyr 和 broom 来按组运行回归并使用 R 4.02、dplyr 1.0.0 和 broom 0.7.0 检索整齐的结果?

具体来说,上面链接的问题的示例答案,

当我在我的系统上运行它时返回以下错误(和三个警告):

如果我重新格式化df.h$hour为一个字符而不是因子,

按组重新运行回归,并再次尝试使用检索结果broom::tidy

我收到此错误:

我认为问题与组级回归结果作为列表存储在 中的事实有关dfHour$fitHour,但我不确定如何纠正错误并再次整齐快速地编译回归结果,就像在最初发布的代码/答案。

0 投票
1 回答
504 浏览

r - Tidymodels 调整配方参数

使用 tidymodels,我真的很喜欢不仅可以调整模型参数,还可以调整一些食谱步骤。例如 step_pls() 中的组件数。问题是我在限制可能值的范围时遇到了麻烦。例如,如果我想使用 step_umap,我想将搜索空间限制为 2:5 分量。当我用 step_umap() 替换 step_pls() 时,以下代码会导致会话崩溃。它试图用大约 50 个组件构建 umap...所以基本上,我的问题是,在使用 grid_random 或 grid_max_entropy 时,如何限制搜索特定调整参数的范围?

注意:也尝试过类似param_grid%>%grid_random(size=5,num_comp() %>% range_set(c(3, 5))). 但似乎被忽略了。

谢谢