问题标签 [mlr3]
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 - 如何在 mlr3 中绘制二元分类器的校准图
其中mlr
有一个绘制校准图的功能:
现在我想知道如何在mlr3
使用learner$train(task)$predict(task)
. 我在 mlr3 书中没有找到这个主题。任何提示都非常感谢。
由reprex 包于 2021-03-26 创建(v1.0.0)
mlr3 - 在 mlr3 中使用“classif.fbeta”作为性能度量时如何更改 Beta 值?
library(mlr3verse)
preformace_msr <- msr("classif.fbeta", beta = 1.5)
我正在尝试在 fbeta 度量中使用 BETA 的自定义值来调整分类模型。
但是上述试图给出 beta 值的方式在 mlr3 中会引发错误。
在 mlr3 中正确的做法是什么?
r - mlr3 优化的集合平均
我尝试使用超级学习器优化分类任务中两个逻辑回归的平均预测。
我感兴趣的衡量标准是classif.auc
mlr3
帮助文件告诉我( ?mlr_learners_avg
)
使用权重(按数据中出现的顺序)对预测进行平均,这些权重使用“nloptr”包中的非线性优化对 measure 中提供的度量进行优化( LearnerClassifAvg 的默认值为 classif.acc,LearnerRegrAvg 的默认值为 regr.mse)。学习的权重可以从 $model 获得。SuperLearner R 包中实现了使用非线性优化。如需更详细的分析,请参阅 LeDell (2015)。
关于此信息,我有两个问题:
当我查看源代码时,我认为
LearnerClassifAvg$new()
默认为"classif.ce"
,这是真的吗?我想我可以将其设置classif.auc
为param_set$values <- list(measure="classif.auc",optimizer="nloptr",log_level="warn")
帮助文件指的是
SuperLearner
软件包和LeDell 2015。正如我正确理解的那样,上述论文中提出的“通过元学习最大化 AUC”解决方案在mlr3
? 还是我错过了什么?这个解决方案可以应用mlr3
吗?在mlr3
书中我找到了关于调用外部优化函数的段落,这可能SuperLearner
吗?
machine-learning - 您如何使用通过超频带调优和 mlr3 找到的最佳配置来预测新数据?
我正在使用mlr3
一系列软件包和超频带方法来调整机器学习模型。一切进展顺利,但我无法弄清楚如何预测使用超频带找到新数据的最佳配置。
是否可以直接使用存储在结果中的信息来执行此操作instance
- 或者我是否需要提取最佳配置(即instance$result
),然后使用这些参数拟合一个新模型,然后我可以用它来预测?
在下面的示例中(从 mlr3 书中借用)如何使用存储的信息instance
来预测新数据?
由reprex 包于 2021-04-07 创建(v1.0.0)
r - 使用 predict_type="prob" 设置估计的门槛率
我用 predict_type="prob" 训练了一个学习者。在进行预测时,在计算度量时会应用“默认障碍率”。我想改变这个障碍率。我怎样才能做到这一点?
r - 图和图学习器之间的区别
我试图理解图和图学习器之间的区别。我可以用图表来 $train 和 $predict 。但我需要“包装器”才能使用行选择和分数(见下面的代码)。
有没有什么可以用不同时是学习者的图来完成?(在带有gr
但不带有的代码中glrn
?
cross-validation - mlr3 中的留一法交叉验证
我喜欢在 mlr3 中使用 Leave-One-Out 交叉验证(作为管道的一部分)。
我可以指定折叠数(=实例数),例如通过
但这明确指的是可能无法在管道中工作的“任务”。
我该如何继续?
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 参数?
cross-validation - 当某些迭代具有 NaN 值时,在 mlr3 ResampleResult 中聚合性能度量
我想计算一个留一法重采样的所有迭代的聚合性能度量(精度)。
对于单次迭代,该度量的结果只能是 0、1(如果预测为正类)或 NaN(如果预测为负类。
我想将其聚合到整个重采样的现有值上,但聚合结果始终为 NaN(自然,多次迭代将是 NaN)。我无法弄清楚(从 ResampleResult$aggregate() 的帮助页面)如何做到这一点: