You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

mlr3调优归档提取Random Forest超参数及克隆问题问询

mlr3分支模型调优:提取最优Random Forest超参数问题

背景

基于mlr3官方示例搭建自动化机器学习系统,采用branching机制集成xgboost与Random Forest(ranger)模型。训练阶段xgboost表现最优,已通过instance$result_learner_param_vals提取其最优超参数并构建最终模型。

尝试提取表现最优的Random Forest模型超参数,代码如下:

Arch = as.data.table(instance$archive, exclude_columns = NULL) # 保留uhash字段
best_RF = Arch[branch.selection == "lrn_ranger"]
best_RF = best_RF[which.min(best_RF$regr.rmse), ] # 筛选RMSE最小的RF模型
instance$archive$learner_param_vals(uhash = best_RF$uhash)

lrn_2 = as_learner(graph)
lrn_2$param_set$values = instance$archive$learner_param_vals(uhash = best_RF$uhash)
#lrn_2$param_set$values = instance$archive$learner_param_vals(i = best_RF$batch_nr)

核心问题

使用uhash或batch_nr调用instance$archive$learner_param_vals()时,始终返回归档第一行的参数集,而非目标Random Forest的最优超参数。

附带确认点

为不同分支构建基准模型时,若不对原始graph进行deep clone,修改克隆后的branch.selection会影响原始graph_learner及已构建的最优xgboost模型,已确认此为预期行为。


解决方案

1. 正确提取分支模型超参数

在branching场景下,learner_param_vals返回的是整个Graph的完整参数集,分支模型的参数会以嵌套形式存储,需针对性提取:

方法一:从完整参数集中筛选RF参数

# 获取最优RF的归档记录
Arch = as.data.table(instance$archive, exclude_columns = NULL)
best_RF = Arch[branch.selection == "lrn_ranger"][which.min(regr.rmse)]

# 获取该记录对应的完整参数集
full_params = instance$archive$learner_param_vals(uhash = best_RF$uhash)

# 提取属于ranger分支的参数(前缀需匹配你Graph中分支节点的命名)
rf_params = full_params[grepl("lrn_ranger", names(full_params))]
# 去除参数名中的分支前缀,转为ranger原生参数格式
names(rf_params) = gsub("^.*lrn_ranger\\.", "", names(rf_params))

# 构建RF模型并赋值最优参数
lrn_ranger = lrn("regr.ranger")
lrn_ranger$param_set$values = rf_params

方法二:直接从归档params列提取

如果归档已包含params列(exclude_columns=NULL已开启),可直接提取:

# 直接从最优RF记录的params列中获取分支参数
rf_params = best_RF$params[[1]][[best_RF$branch.selection]]

# 构建模型并赋值参数
lrn_ranger = lrn("regr.ranger")
lrn_ranger$param_set$values = rf_params

2. Graph克隆的标准方式

为避免修改克隆对象影响原始Graph,必须使用deep_clone():

graph_clone = deep_clone(graph)
lrn_clone = as_learner(graph_clone)
lrn_clone$param_set$values$branch.selection = "lrn_ranger"

内容的提问来源于stack exchange,提问作者Nucore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 06:20:44