mlr3 优化的整体平均数
mlr3 optimized average of ensemble
我尝试使用超级学习器优化分类任务中两个逻辑回归的平均预测。
我感兴趣的指标是classif.auc
mlr3
帮助文件告诉我 (?mlr_learners_avg
)
Predictions are averaged using weights (in order of appearance in the
data) which are optimized using nonlinear optimization from the
package "nloptr" for a measure provided in measure (defaults to
classif.acc for LearnerClassifAvg and regr.mse for LearnerRegrAvg).
Learned weights can be obtained from $model. Using non-linear
optimization is implemented in the SuperLearner R package. For a more
detailed analysis the reader is referred to LeDell (2015).
关于此信息我有两个问题:
当我查看 source code 时,我认为 LearnerClassifAvg$new()
默认为 "classif.ce"
,是这样吗?
我想我可以将它设置为 classif.auc
和 param_set$values <- list(measure="classif.auc",optimizer="nloptr",log_level="warn")
帮助文件参考了SuperLearner
包和LeDell 2015. As I understand it correctly, the proposed "AUC-Maximizing Ensembles through Metalearning" solution from the paper above is, however, not impelemented in mlr3
? Or do I miss something? Could this solution be applied in mlr3
? In the mlr3
book I found a paragraph regarding calling an external optimization function,SuperLearner
可以吗?
据我了解,LeDell2015提出并评估了一种通过学习最优权重将AUC优化为黑盒函数的通用策略。他们并没有真正提出 best 策略或任何具体的默认设置,所以我研究了 SuperLearner 包的 AUC 优化策略的默认设置。
假设我正确理解了论文:
LearnerClassifAvg
基本上实现了 LeDell2015 中提出的建议,即它使用非-优化 any 指标的权重线性优化。 LeDell2015关注优化AUC的特例。正如您正确指出的那样,通过将度量设置为 "classif.auc"
,您将获得一个优化 AUC 的元学习器。关于使用哪个优化例程的默认值在 mlr3pipelines 和 SuperLearner 包之间存在偏差,我们在其中使用 NLOPT_LN_COBYLA
和 SuperLearner ... 通过 optim
函数使用 Nelder-Mead 方法来最小化等级损失 (from the documentation).
因此,为了获得完全相同的行为,您需要实施 Nelder-Mead
bbotk::Optimizer
similar to here that simply wraps stats::optim
with method Nelder-Mead
and carefully compare settings and stopping criteria. I am fairly confident that NLOPT_LN_COBYLA
delivers somewhat comparable results, LeDell2015 对不同的优化器进行比较以供进一步参考。
感谢您发现文档中的错误。我同意,描述有点不清楚,我会努力改进!
我尝试使用超级学习器优化分类任务中两个逻辑回归的平均预测。
我感兴趣的指标是classif.auc
mlr3
帮助文件告诉我 (?mlr_learners_avg
)
Predictions are averaged using weights (in order of appearance in the data) which are optimized using nonlinear optimization from the package "nloptr" for a measure provided in measure (defaults to classif.acc for LearnerClassifAvg and regr.mse for LearnerRegrAvg). Learned weights can be obtained from $model. Using non-linear optimization is implemented in the SuperLearner R package. For a more detailed analysis the reader is referred to LeDell (2015).
关于此信息我有两个问题:
当我查看 source code 时,我认为
LearnerClassifAvg$new()
默认为"classif.ce"
,是这样吗? 我想我可以将它设置为classif.auc
和param_set$values <- list(measure="classif.auc",optimizer="nloptr",log_level="warn")
帮助文件参考了
SuperLearner
包和LeDell 2015. As I understand it correctly, the proposed "AUC-Maximizing Ensembles through Metalearning" solution from the paper above is, however, not impelemented inmlr3
? Or do I miss something? Could this solution be applied inmlr3
? In themlr3
book I found a paragraph regarding calling an external optimization function,SuperLearner
可以吗?
据我了解,LeDell2015提出并评估了一种通过学习最优权重将AUC优化为黑盒函数的通用策略。他们并没有真正提出 best 策略或任何具体的默认设置,所以我研究了 SuperLearner 包的 AUC 优化策略的默认设置。
假设我正确理解了论文:
LearnerClassifAvg
基本上实现了 LeDell2015 中提出的建议,即它使用非-优化 any 指标的权重线性优化。 LeDell2015关注优化AUC的特例。正如您正确指出的那样,通过将度量设置为 "classif.auc"
,您将获得一个优化 AUC 的元学习器。关于使用哪个优化例程的默认值在 mlr3pipelines 和 SuperLearner 包之间存在偏差,我们在其中使用 NLOPT_LN_COBYLA
和 SuperLearner ... 通过 optim
函数使用 Nelder-Mead 方法来最小化等级损失 (from the documentation).
因此,为了获得完全相同的行为,您需要实施 Nelder-Mead
bbotk::Optimizer
similar to here that simply wraps stats::optim
with method Nelder-Mead
and carefully compare settings and stopping criteria. I am fairly confident that NLOPT_LN_COBYLA
delivers somewhat comparable results, LeDell2015 对不同的优化器进行比较以供进一步参考。
感谢您发现文档中的错误。我同意,描述有点不清楚,我会努力改进!