我们有混合输出类型连续、类、生存的回归链

问题描述

我是 MLR3 的新手,我很喜欢它!在那里干得好! Lennart Schneider 提供了一个非常好的回归链示例 https://mlr3gallery.mlr-org.com/posts/2020-04-18-regression-chains/ 这让我开始思考 - 如何使用混合类型的输出来实现这一点。 假设例如(改编自他的例子):

library(data.table)
library(mvtnorm)
set.seed(2409)
n = 100
(mean = c(y1 = 1,y2 = 2,y3 = 3))
(sigma = matrix(c(1,-0.5,0.25,1,-0.25,1),nrow = 3,ncol = 3,byrow = TRUE))
Y = rmvnorm(n,mean = mean,sigma = sigma)
Y[,2] = 1.*(Y[,2]> 2)
Y[,3] = mapply(rexp,n=1,rate = 1/exp(Y[,3]-1.))
status = 1.*(Y[,3] > 4) (right censoring indicator)
dat = as.data.table(cbind(Y,status,x1,x2))
str(dat)

Step1 清晰且保持不变(直接从示例中复制):

#-- Building Pipeline
library(mlr3)
library(mlr3learners)
library(mlr3pipelines)
library(mlr3misc)
#library(mlr)
task = TaskRegr$new("multiregression",backend = dat,target = "y1") ## Define the Task 1

#Use the input to predict y1 within the first learner (i.e.,y1∼x1+x2).
step1 = po("copy",outnum = 2,id = "copy1") %>>%
  gunion(list(
    po("colroles",id = "drop_y2_y3",param_vals = list(new_role = list(y2 = character(),y3 = character()))) %>>% ## this line here drops the varaibles
      po("learner_cv",learner = lrn("regr.lm"),id = "y1_learner"),# we push this to a regr. learner
    po("nop",id = "nop1")
  )) %>>%
  po("featureunion",id = "union1")
step1$plot()
step1$train(task)[[1]]

当 Y2 是类输出(第 2 步是分类步骤)并且第 3 步是生存数据(第 3 步是生存步骤)时,管道的其余部分如何进行。

如果您愿意,我可以提供更多信息。

非常感谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...