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

r - 使用 tidymodels recipes 包添加缺少的指标列

我想使用recipes包创建一个配方,该包既可以估算丢失的数据,又可以添加指示哪些值丢失的指示符列。如果可以选择为原始数据框中的每一列包含一个指示符列,或者只为原始数据框中缺少数据的列包含一个指示符列,那也很好。我知道我可以使用recipes轻松估算缺失值,但是是否有内置方法来添加缺失的指示符列?

例如,如果我有这样的数据框:

我希望插补和添加缺失指标列后的输出看起来像这样:

当然,对于这样一个简单的例子,我可以手动完成。但是,当在机器学习管道中处理大型数据集时,有一种自动化的方法会很有帮助。

根据 的文档recipes::check_missing,有一个columns论点,

将由 terms 参数(最终)填充的变量名称字符串。

但我不确定这意味着什么,terms因为check_missing.

作为参考,我正在寻找的功能是由MissingIndicator类在scikit-learn中实现的。

0 投票
1 回答
1052 浏览

r - 为什么 tidymodels/recipes 中的“id 变量”起到预测作用?

与使用 step_naomit 的 Predict 和使用 tidymodels 保留 ID的问题相同,但即使有一个可接受的答案,OP 的最后一条评论指出了“id 变量”被用作预测器的问题,正如在查看时可以看到的那样model$fit$variable.importance.

我有一个我想保留的带有“id variables”的数据集。我想我可以通过 recipe() 规范来实现这一点。

reprex 包(v0.3.0)于 2020 年 1 月 27 日创建

但即使我确实指定label了一个 id 变量,它也被用作预测变量。所以也许我可以在公式中使用我想要的特定术语,并专门添加label为 id 变量。

reprex 包(v0.3.0)于 2020 年 1 月 27 日创建

我可以试着不提label

reprex 包(v0.3.0)于 2020 年 1 月 27 日创建

好的,所以模型有效,但我的label.
我该怎么做?

0 投票
1 回答
119 浏览

r - 在 R 中安装 tidymodel 和依赖包后的问题

我试图使用 tidymodels 并且在安装这个包时它还安装了我认为的某些依赖包。发布后,每当我运行一些基于 dplyr 的独立代码或我的闪亮应用程序时,我一直收到此错误,该应用程序在此之前运行良好。我该如何解决这个问题:

所以我做到了sessionInfo(),这就是我得到的:

所以我确实尝试了 rlang::last_trace() 并得到了这个

0 投票
0 回答
41 浏览

r - 使用 rsample 从评估拆分中删除观察结果

有没有办法替换对象中的评估拆分rset

我尝试了以下方法:

reprex 包(v0.3.0)于 2020 年 2 月 14 日创建

我知道我可以提取评估和分析拆分,然后使用它们,但我想更新rset对象。

0 投票
1 回答
1760 浏览

r - tidymodels:具有交叉验证的游侠

数据集可以在这里找到: https ://www.kaggle.com/mlg-ulb/creditcardfraud

我正在尝试使用 tidymodels 在此数据集上运行具有 5 折交叉验证的游侠。

我有 2 个代码块。第一个代码块是包含完整数据的原始代码。第二个代码块几乎与第一个代码块相同,只是我有一部分数据的子集,因此代码运行得更快。第二个代码块只是为了确保我的代码在我在原始数据集上运行之前可以正常工作。

这是包含完整数据的第一个代码块:

这是具有 1,000 行的第二个代码块:

1.) 使用第一个代码块,我可以在控制台中分配和打印 cv 折叠。全球环境数据显示 cv_folds 有 5 个 obs。2个变量。当我查看(cv_folds)时,我有标记为拆分和 id 的列,但没有行也没有数据。当我使用 str(cv_folds) 时,我得到了 R 正在“思考”的空白加载行,但没有我可以推动的红色 STOP 图标。我唯一能做的就是强制退出 RStudio。也许我只需要等待更长的时间?我不确定。当我用较小的第二个代码块做同样的事情时, str() 工作正常。

2)我对这个项目的总体目标是将数据集分成训练集和测试集。然后用 5 折交叉验证对训练数据进行分区,并在其上训练一个游侠模型。接下来,我想检查我的模型在训练数据上的指标。然后我想在测试集上测试我的模型并查看指标。最终,我想将 ranger 换成 xgboost 之类的东西。请就我可以添加/修改代码的哪些部分来改进给我建议。我仍然缺少在测试集上测试我的模型的部分。

3) 当我使用 rf_results %>% collect_metrics() 时,它只显示准确率和 roc_auc。如何获得灵敏度、特异性、精确度和召回率?

4)我如何绘制重要性?我会用这样的东西吗?

5) 如何大幅减少模型训练的时间?上次我在这个数据集上使用插入符号运行 ranger 进行 5 折交叉验证,花费了 8 多个小时(6 核,4.0 ghz,16gb RAM,SSD,gtx 1060)。我对任何事情都持开放态度(即重构代码、AWS 计算、并行化等)


编辑:这是我尝试设置的另一种方式

0 投票
2 回答
232 浏览

r - 使用 rsample 包的引导比使用引导包慢得多

我发现使用这样的boot

rsample我可以比使用包快 10 倍以上创建引导示例:

我想知道我是否rsample正确使用。

0 投票
2 回答
695 浏览

r - 带有 ranger 包的 fit_resamples 失败

尝试使用交叉重采样并从 ranger 包中拟合随机森林。没有重新采样的拟合有效,但是一旦我尝试重新采样拟合,它就会失败并出现以下错误。

考虑以下df

遵循简单的适合工作没有问题

但是只要我想通过

跟随错误

模型:parse.formula 中的错误(公式,数据,env = parent.frame()):错误:公式界面中的列名非法。修复列名或在 ranger 中使用替代接口。

0 投票
1 回答
127 浏览

r - Tidymodels imputation within each fold

When using caret with CV, imputation estimation /etc will happen in each fold as not to leak. I am trying to find whether this happens in the tidymodels workflow.

Logically I don't think so as you pipe a baked (already applied steps) into the vfold_cv... but I may br wrong.

I could build a workflow that creates folds first, but wondering if im missing something. Thanks

0 投票
1 回答
306 浏览

r - 在 R Tidymodels 中:将单独的 pca(预处理/食谱)应用于不同的数据帧,然后将它们合并以进行训练

我想使用 tidymodels 框架,其中三个不同的数据帧分别使用 pca 进行预处理;然后我希望将三个数据帧中的 PCA 组件放在一起进行一次培训。对于训练,我想使用岭回归应用交叉验证。更重要的是避免 PCA 的数据泄露;因此 PCA 应该交叉验证过程中实施,而不是之前单独执行。(因此,下面示例代码中的 df_x1、df_x2、df_x3 应该创建它们自己的 PCA 组件,其中这些组件应该是一个最终岭回归预测 y 的预测器。

这是一些示例数据:

这是我到目前为止所尝试的。

0 投票
2 回答
387 浏览

r - 使用 R 中的 tidymodel 框架进行随机森林超参数调整的错误

我正在尝试使用 tidymodels 框架为随机森林回归问题找到正确的参数。

以下是我的代码:

我收到以下错误:

我错过了什么?