问题标签 [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 回答
171 浏览

r - Tidymodels 配方包在变量列表中使用 step_normalize

我只想使用配方包(tidymodels)中的 step_normalize 对任意选择的变量进行标准化。不幸的是,我找不到似乎在 step_normalize 中工作的选择函数,它选择变量列表:

我收到此错误消息:

0 投票
1 回答
2462 浏览

r - R 包“食谱”中的 prep/bake/juice 有什么区别?

我阅读了 tidymodels 的介绍,我对食谱包对数据的作用prep(), bake()和作用感到困惑。juice()各自做什么?老实说,我发现为函数命名这样的名称令人困惑,在烹饪类比中,每个函数的名称会更直观吗?

0 投票
2 回答
114 浏览

r - 欧洲防风草与基础 R 预测的大标准误差

似乎predict产生了一个太大的标准错误。我用模型得到 0.820,parsnip但用基本 R 模型得到 0.194。标准误差 0.194 似乎更合理,因为在我的预测上下大约 2*0.195 是置信区间的末端。我的问题/误解是什么?

reprex 包(v0.3.0)于 2020-06-04 创建

--编辑--

正如@thelatemail 和@Limey 所说,使用type="link"基本模型将给出logit 标度的标准误差(0.820)。但是,我想要概率尺度上的标准误差。我缺少的parsnip文档中有一个选项吗?我想用parsnip.

0 投票
1 回答
2049 浏览

r - 如何在插入符号或 tidymodels 中使用 LASSO 进行嵌套交叉验证?

目标

我想根据此处显示的示意图实现 LASSO 模型并检查其在训练集上的可行性。(示意图说明:所有数据都分为测试集和训练集。训练集通过 5 倍交叉验证 (CV) 分成重采样。其中对每个重采样执行 10 倍 CV 以找到最佳 lambda。)套装尚不可用。

我想 LASSO 模型并使用嵌套 CV 和内部 CV 检查其性能,以通过网格搜索和外部 CV 获得最佳 lambda(分析和评估)来比较重采样 1、2、3 等。

带有“repeatedcv”的插入符号

来自 Caret 的带有“repeatedcv”的列车控制允许指定数量和重复。

使用上面的代码,插入符号结果是一个有 20 行的数据框。大概是定义网格上每个点的一行。但是,我希望插入符号使用 10 倍(数字 = 10)CV 为每个网格搜索找到一个最佳 lambda,然后比较最佳 lambda,因为粗体过程已执行多次(重复 = 5)。

0 投票
0 回答
127 浏览

r - 套索 tidymodels 错误:“x”和“y”必须具有相同的类型和长度

目标

在 tidymodels 中使用网格搜索创建套索模型。

使用与Julia Silge的工作代码相似/相同的代码以及另一个包含数字和因子变量的数据集。

问题

错误消息(已解决,见编辑)

`x` 和 `y` 必须具有相同的类型和长度

LASSO 没有有效结果

在所有 bootstrap 案例中,标准差均为 Null。

代码

错误追溯

  1. tune_grid(wf %>% add_model(model), resamples = boot, grid = lambdas)
  2. tune_grid.workflow(wf %>% add_model(model), resamples = boot, grid = lambdas)
  3. tune_grid_workflow(对象,resamples = resamples,grid = grid,metrics = metrics,pset = param_info,control = control)
  4. rlang::eval_tidy(code_path)
  5. tune_mod_with_recipe(重采样、网格、对象、指标、控制)
  6. pull_metrics(重采样、结果、控制)
  7. 滑轮(重新采样,水库,“.metrics”)
  8. full_join(重新采样,pull_vals,by = id_cols)
  9. full_join.tbl_df(重新采样,pull_vals,by = id_cols)
  10. `names<-`(` tmp` , value = vars$alias)
  11. `names<-.rset`(`tmp` , value = vars$alias)
  12. rset_reconstruct(out, x)
  13. rset_reconstructable(x, to)
  14. col_equals_splits(to_names)
  15. vec_equal(x, "分裂")

笔记

当提供一个特定的 lambda 并且数据适合时,不会发生错误。

如果网格提供的 lambda 不能正确拟合,如何更改网格?

仅使用数字预测变量会导致相同的错误。

编辑

  • 可以避免错误消息,`x` 和 `y` 必须具有相同的类型和长度。最初,使用 dplyr 和 rsample 版本 0.8.5 和 0.0.7。将 rsample 降级到 0.0.6 或将 dplyr 升级到 1.0.0 解决了这个问题(感谢 Max Kuhn)。
  • LASSO 仍然无法找到合适的拟合。

reprex 包(v0.3.0)于 2020-06-12 创建

0 投票
1 回答
498 浏览

r - 在随机森林 tidymodels r 中设置调整游侠的最大深度

我想调整随机森林的深度以避免过度拟合。我正在使用 tidymodels,这是我的模型代码。

它给了我一个错误:

我还尝试了 dials 文档中的 tree_depth = tune() ,这给出了同样的错误。

但是当我查看 ranger 文档时,它具有 max.depth 作为参数。想知道如何使用 tidymodels tune 调整深度。

谢谢

0 投票
1 回答
574 浏览

r - 模型在尝试调整 R Tidymodels 中的 xgboost 超参数时失败

我不确定我哪里出错了。当我运行以下调整网格内的模型失败。我收到此警告消息:“所有模型在 tune_grid() 中均失败”。任何帮助将不胜感激。

数据配方

输入:

角色 #variables 结果 1 预测器 272

训练数据包含 2427 个数据点,没有缺失数据。

操作:

PROGRAM_TYPE_CODE、PREFERENCE_NUMBER、...的折叠因子级别... [已训练] 已删除稀疏、不平衡变量过滤器 PRIOR_PGRD_PRG_YR、PRIOR_TF_SC_PRG_YR、ETHNIC_GROUP_DESC、HASEMAIL、... [已训练]

提升树模型规范(分类)

主要参数: mtry = tune() trees = 600 min_n = tune()
tree_depth = tune() learn_rate = tune() loss_reduction = tune()
sample_size = tune()

计算引擎:xgboost

一个小标题: 20 x 6 tree_depth min_n loss_reduction sample_size mtry learn_rate 1 4 15 1.71e- 6 0.256 110 2.14e- 9 2 7
29 4.08e- 8 0.836 97 2.07e-10 3 10 26
6.44e- 7 59 0.883 66e 7. 8 4 8 28 9.77e- 1 0.964 270 3.90e- 8 5 1 19 4.27e- 4 0.733
208 8.00e- 4 6 3 5 1.61e+ 1 0.392 220 4.04e-10 7 5 9 1.48e- 9 3e-
3 - 7 8 11 34 4.20e- 5 0.569 178 1.69e- 8 9 12 38 7.80e+ 0 0.143 79 8.67e- 7 10
4 12 5.58e- 9 0.946 173 1.17e- 2 11 14
2 1.30e- 4 0.805 202 1.10e- 4 12 15 21
9.15e- 3 0.454 134 3.82e- 3 13 9 21 4.99e- 6 0.500 10 2.91e- 9 14 7 17 7.60e-10
0.232 6.25 15 12 11 4.85e- 1 0.297 21 1.23e- 5 16 7 35 7.63e- 8 0.516 95
9.60e- 2 17 2 6 1.01e- 1 0.353 48 3.57e- 6 18 10 23 2.57e-10.4616 33e-10 0. - 2 19
13 40 2.00e- 3 0.715 150 3.44e- 5 20 5
32 1.25e- 2 0.610 234 4.95e- 4

══工作流═══════════════════════════════════════════════ ══════════════════════════════════════════════════ ══════════════ 预处理器:配方模型:boost_tree()

── 预处理器 ──────────────────────────────────────────────── ────────────────────────────────────────────────── ────────── 2个配方步骤

● step_other() ● step_nzv()

── 型号────────────────────────────────────────────── ────────────────────────────────────────────────── ──────────────── 提升树模型规范(分类)

主要参数: mtry = tune() trees = 600 min_n = tune()
tree_depth = tune() learn_rate = tune() loss_reduction = tune()
sample_size = tune()

计算引擎:xgboost

10折交叉验证

小标题:10 x 2 拆分 id 1 Fold01 2 Fold02 3

折叠 03 4 折叠 04 5 折叠 05 6 折叠 06 7 折叠 07 8 折叠 08 9 折叠 09 10 折叠 10

xgb_res # 10-fold cross-validation # A tibble: 10 x 5 splits id .metrics .notes .predictions
1 Fold01
2 Fold02
3 Fold03
4 Fold04
5 Fold05
6 Fold06
7 Fold07
8 Fold08
9 Fold09
10 Fold10

警告消息:所有模型在 tune_grid() 中均失败。见.notes专栏。

0 投票
0 回答
103 浏览

r - Tidymodels 错误拟合。错误:`x` 和 `y` 必须具有相同的类型和长度

我有以下代码:

我也尝试过使用工作流程

使用时last_fit()出现以下错误:

我使用了 kknn、decision_tree、random_forest 和 xgboost,都得到了相同的错误。即使使用tune_grid().

问题是当我使用fit()函数时一切正常。我知道这是因为我使用了错误的模型,但是为什么会出现该错误?我是 tidymodel 包的新手。

提前致谢。

0 投票
1 回答
293 浏览

tidymodels - TidyModels 是否提供执行多模型建模的能力?

我最近一直在使用 TidyModels,想知道它是否具有许多模型的功能,类似于 R For Data Science 的许多模型章节中介绍的 Modelr 中可用的功能。

我浏览了文档,但没有看到这个。

0 投票
1 回答
152 浏览

r - rsample vfold_cv 函数不接受来自 purrr::map2 的 .y 参数

我正在尝试使用该包创建嵌套的交叉验证rsample,并且我使用它purrr::map2来创建它们多次,并根据v参数的规定使用不同的折叠量。但是,该vfold_cv函数不接受v参数,而是出现此错误:Error: v must be a single integer.

在下面的代表中,我mtcars通过为每个圆柱体创建交叉验证来模拟使用数据的情况。用数字替换是可行的,但我需要使用该列.y使参数随每个气缸而变化。n

错误:`v` 必须是单个整数。