问题标签 [r-ranger]

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

r - 尝试使用 ranger 插入插入符号时出错

我有一个数据集“df_train”,其中包含我所有的解释变量和我的目标变量(xxx1)。此外,我还有另一个数据集,其中包含拟合随机森林(xxx2 列)时要使用的权重。我正在尝试实现 3-fold cv,但似乎出了点问题。它说的是类概率,但我正在尝试拟合回归随机森林。我不明白其余的错误是关于什么的。

0 投票
2 回答
133 浏览

r - 使用相同任务的 svm 和 ranger 的不同运行时

我已经对这两个学习者的运行时间进行了基准测试,并在 {ranger} 和 {svm} 正在训练时截取了 {htop} 的两个屏幕截图,以使我的观点更加清晰。正如这篇文章的标题所述,我的问题是为什么 svm 中的训练/预测与其他学习者(在本例中为游侠)相比如此缓慢?它与学习者的底层结构有关吗?还是我在代码中犯了错误?或者...?任何帮助表示赞赏。

游侠训练时的 htop 游侠训练时的 htop;使用所有线程。

svm 训练时的 htop svm 训练时的 htop;仅使用 2 个线程。

代码:

reprex 包于 2021-01-12 创建(v0.3.0)

0 投票
0 回答
67 浏览

mlr3 - 具有 predict.all = TRUE 的游侠学习器中的错误

我想将包 {ranger} 中随机森林的所有预测存储在 ml3 预测对象中,然后将单个树的预测用作另一个学习器的特征。

然后,以下代码将遵循 R 中的以下错误消息。

代码:

错误:

check_prediction_data.PredictionDataClassif( pdata) 中的错误:
“as_factor(pdata$response,levels = lvls)”上的断言失败:长度必须为 30,但长度为 15000。

有人可以帮我解决这个问题吗?

0 投票
1 回答
74 浏览

r - R插入符号随机森林ggplot修改图例

如何修改通过将 ggplot 应用于使用 ranger 算法构建的插入符号对象生成的默认绘图图例?例如,假设我希望图例标题为“Splitting algo”而不是默认的“Splitting Rule”。

0 投票
1 回答
112 浏览

r - 多列的随机森林算法

我想使用游侠为多个物种执行随机森林。

我可以设法为每个单独的物种单独执行此操作,尽管当我选择多个物种时,我收到以下错误:

parse.formula(formula, data, env = parent.frame()) 中的错误:错误:公式界面中的列名非法。修复列名或在 ranger 中使用替代接口。sample.fraction = c(detection_freq, detection_freq),)

这是一个仅使用 20 列和 15 行的可重现代码。

0 投票
1 回答
241 浏览

r - 能否获得 R 的 TidyModel 框架中随机森林模型的袋外误差?

如果直接使用 ranger 函数,可以从生成的 ranger 类对象中获取袋外错误。

相反,如果通过设置配方、模型规范/引擎、调整参数等方式进行,我们如何提取相同的错误?Tidymodels 方法似乎没有保留这些数据。

0 投票
0 回答
165 浏览

r - 分位数回归森林的预测区间覆盖率高于预期?

问题:

哪些因素可能导致预测区间的覆盖范围比预期的更广?特别是关于带有ranger包的分位数回归森林?

具体上下文+ REPREX:

我通过欧洲防风草tidymodels软件包套件使用分位数回归森林ranger来生成预测区间。我正在查看一个使用ames住房数据的示例,并惊讶地发现在下面的示例中,当在保留数据集上评估时,我的 90% 预测区间的经验覆盖率约为 97%(训练数据的覆盖率甚至更高) .

这更令人惊讶,因为我的模型在保留集上的表现比在训练集上的表现要得多,因此我猜想覆盖率会低于预期,而不是高于预期?

加载库、数据、设置拆分:

指定模型工作流程:

对训练和保留数据集进行预测:

显示训练数据和保留数据的覆盖率远高于预期的 90%(经验上似乎分别为 ~98% 和 ~97%):

猜测:

  • 关于ranger包或分位数回归森林的某些东西在估计分位数的方式上过于极端,或者我以某种方式在“极端”方向上过度拟合——导致我高度保守的预测区间
  • 这是此数据集/模型特有的怪癖
  • 我遗漏了某些东西或设置不正确
0 投票
0 回答
108 浏览

r - 随机森林中的类变量重要性| R

我正在使用该randomforest软件包对从四组(A、B、C、D)收集的多元数据进行分类。所有变量都是连续的,结果是分类的。调用importance()varImp()显示总体变量重要性和特定于类的变量重要性,但我想知道哪些变量在两组之间提供了最佳分离 - A 和 B、A 和 C、B 和 C 等等。

有没有办法在不基于组子集创建新预测的情况下确定成对组的变量重要性?

任何指针表示赞赏!

0 投票
0 回答
133 浏览

r - 在 tidymodel 上使用 DoParallel 调优模型时如何使用更多可用内核

我正在 tidymodels 中使用 ranger 调整一些随机森林模型。我有一个包含许多列的相当大的数据集。因此,我使用Danny Foster 的文章:R on Digital Ocean中的说明设置了一个用于调整/训练的数字海洋液滴。我用来训练模型的系统在 Intel 硬件上运行,有 32 个内核和 64gb 内存。

在此处输入图像描述

我在调优之前使用以下命令来实现并行处理:

当我使用 htop 命令查看系统上的处理时,我看到 32 个内核中的 17 到 18 个一直在使用中。这个数字似乎与 DoParallel 文档一致,即如果未指定内核,则使用 50% 的内核。我认为 2 个核心被留作其他职责,而我的模型正在使用 16 个。

因此,我指定要使用的核心数量的方式似乎有问题。

我应该如何指定在 DoParallel 中使用的核心数。

编辑更新:当我从调整随机森林模型切换到训练逻辑回归时。使用了所有内核和更多可用内存。这是来自逻辑回归模型训练的 htop 图像:

在此处输入图像描述

如您所见,所有内核均已使用,大约 46 GB 的 RAM。这是否表明不同的模型可以以不同的方式利用内核。

0 投票
0 回答
197 浏览

mlr3 - 在 MLR3 Ranger 设置 class.weights 中,错误“'xs' 上的断言失败:class.weights:必须长度为 1”

我想使用 MLR3 中的 Ranger 分类器设置 class.weights 参数。在基本 Ranger 包中,class.weights 参数采用向量。尝试在 MLR3 中设置相同的参数时,出现错误。

这运行良好。现在尝试使用 MLR3:

这会返回一个错误

self$assert(xs) 中的错误:“xs”上的断言失败:class.weights:必须长度为 1

检查 learner$param_set 表明 MLR3 期望 class.weight 的 ParamDBL,而不是列表,因此出现错误。

但是,如果你给它一个参数值,Ranger 会抛出一个错误

返回的错误如下:

ranger::ranger(dependent.variable.name = task$target_names, data = task$data(), 中的错误:错误:类权重的数量不等于类的数量

如何在 MLR3 中设置这个 class.weights 参数?