问题标签 [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.
r - Tidymodels 配方包在变量列表中使用 step_normalize
我只想使用配方包(tidymodels)中的 step_normalize 对任意选择的变量进行标准化。不幸的是,我找不到似乎在 step_normalize 中工作的选择函数,它选择变量列表:
我收到此错误消息:
r - R 包“食谱”中的 prep/bake/juice 有什么区别?
我阅读了 tidymodels 的介绍,我对食谱包对数据的作用prep(), bake()
和作用感到困惑。juice()
各自做什么?老实说,我发现为函数命名这样的名称令人困惑,在烹饪类比中,每个函数的名称会更直观吗?
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)。
r - 套索 tidymodels 错误:“x”和“y”必须具有相同的类型和长度
目标
在 tidymodels 中使用网格搜索创建套索模型。
使用与Julia Silge的工作代码相似/相同的代码以及另一个包含数字和因子变量的数据集。
问题
错误消息(已解决,见编辑)
`x` 和 `y` 必须具有相同的类型和长度
LASSO 没有有效结果
在所有 bootstrap 案例中,标准差均为 Null。
代码
错误追溯
- tune_grid(wf %>% add_model(model), resamples = boot, grid = lambdas)
- tune_grid.workflow(wf %>% add_model(model), resamples = boot, grid = lambdas)
- tune_grid_workflow(对象,resamples = resamples,grid = grid,metrics = metrics,pset = param_info,control = control)
- rlang::eval_tidy(code_path)
- tune_mod_with_recipe(重采样、网格、对象、指标、控制)
- pull_metrics(重采样、结果、控制)
- 滑轮(重新采样,水库,“.metrics”)
- full_join(重新采样,pull_vals,by = id_cols)
- full_join.tbl_df(重新采样,pull_vals,by = id_cols)
- `names<-`(` tmp` , value = vars$alias)
- `names<-.rset`(`tmp` , value = vars$alias)
- rset_reconstruct(out, x)
- rset_reconstructable(x, to)
- col_equals_splits(to_names)
- 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 创建
r - 在随机森林 tidymodels r 中设置调整游侠的最大深度
我想调整随机森林的深度以避免过度拟合。我正在使用 tidymodels,这是我的模型代码。
它给了我一个错误:
我还尝试了 dials 文档中的 tree_depth = tune() ,这给出了同样的错误。
但是当我查看 ranger 文档时,它具有 max.depth 作为参数。想知道如何使用 tidymodels tune 调整深度。
谢谢
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
专栏。
r - Tidymodels 错误拟合。错误:`x` 和 `y` 必须具有相同的类型和长度
我有以下代码:
我也尝试过使用工作流程
使用时last_fit()
出现以下错误:
我使用了 kknn、decision_tree、random_forest 和 xgboost,都得到了相同的错误。即使使用tune_grid()
.
问题是当我使用fit()
函数时一切正常。我知道这是因为我使用了错误的模型,但是为什么会出现该错误?我是 tidymodel 包的新手。
提前致谢。
tidymodels - TidyModels 是否提供执行多模型建模的能力?
我最近一直在使用 TidyModels,想知道它是否具有许多模型的功能,类似于 R For Data Science 的许多模型章节中介绍的 Modelr 中可用的功能。
我浏览了文档,但没有看到这个。
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` 必须是单个整数。