问题描述
我是 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 (将#修改为@)