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

mlr3多分支图中为MLR Learner添加特征突变与目标转换及预测疑问

问题描述

已基于mlr3构建包含XGBoost、Ranger、多元线性回归(MLR)、Ridge四个Learner的多分支回归图,核心代码见下方。现需要为MLR分支添加对应规则的特征转换与目标转换:

  • 特征转换:生成log(PM + 0.001)特征,保留原H、T特征
  • 目标转换:训练时对目标变量执行log(observation + 0.001)转换,预测时自动反转回原始空间

同时咨询:若按此配置流程,预测阶段是否无需手动执行exp(obs.predic) - 0.001的反转操作?

核心现有代码:

pomut = po("mutate")
mutations = list(
  PM.Trafo = ~ (PM*T)  
)
pomut$param_set$values$mutation = mutations

preproc_1 = po("select", selector = selector_name(c("T", "H", "PM")), id = "slct_1") 
nop_1 = po("nop", id = "nop_1") 
nop_2 = po("nop", id = "nop_2") 
nop_3 = po("nop", id = "nop_3") 

# 回归图构建
graph = preproc_1 %>>%
  po("branch", c("lrn_xgboost", "lrn_ranger", "lrn_MLR", "lrn_ridge")) %>>%
  gunion(list(nop_1, nop_2, pomut, nop_3)) %>>%
  gunion(lapply(c(learners[[1]], learners[[2]], learners[[3]], learners[[4]]), po)) %>>%
  po("unbranch")
graph$plot()

解决方案

1. 多分支下MLR专属转换的实现

要给MLR分支单独配置特征与目标转换,需为该分支构建独立的预处理+目标转换管道,其他分支保持原有逻辑即可:

# 1. 定义MLR分支的特征转换:生成log(PM+0.001)特征
mlr_feature_mutate = po("mutate", mutation = list(
  log_PM = ~ log(PM + 0.001)
))

# 2. 定义目标转换算子:同时指定训练时的转换函数和预测时的反转函数
mlr_target_trafo = po("targettrafo",
  trafo = function(x) log(x + 0.001),  # 训练时对目标变量的转换
  invert = function(x) exp(x) - 0.001  # 预测时的反转操作
)

# 3. 重新构建多分支回归图
graph = preproc_1 %>>%
  po("branch", c("lrn_xgboost", "lrn_ranger", "lrn_MLR", "lrn_ridge")) %>>%
  gunion(list(
    # XGBoost分支:无额外预处理,直接接Learner
    nop_1 %>>% po(learners[[1]]),
    # Ranger分支:无额外预处理,直接接Learner
    nop_2 %>>% po(learners[[2]]),
    # MLR分支:特征转换 -> 目标转换 -> Learner
    mlr_feature_mutate %>>% mlr_target_trafo %>>% po(learners[[3]]),
    # Ridge分支:无额外预处理,直接接Learner
    nop_3 %>>% po(learners[[4]])
  )) %>>%
  po("unbranch")

# 可视化验证分支流程
graph$plot()

2. 预测反转的自动处理

只要通过po("targettrafo")正确配置了invert参数,mlr3在预测阶段会自动调用反转函数,将模型输出的转换后预测值还原为原始目标空间的数值,无需手动执行exp(obs.predic) - 0.001操作。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 07:19:56