在昨日的推送中,我和大家简单介绍了如何创建与操作task对象,今天咱们接着深入了解一下。
上一期讲到task的col_roles信息,这个是用来储存各列角色的,接下来咱们用实例学习如何操作该对象:
代码语言:javascript复制library(mlr3)
mtcars[1:5,1:3] # 查看mtcars数据集(前五行,前三列),该数据集列名就是车的型号
代码语言:javascript复制#我们把mtcars的前3列转化为“data.table”,并保留行名
data = as.data.table(mtcars[, 1:3],keep.rownames = TRUE)
#创建回归模型的Task(id,backend和target的定义请参考上期内容)
task = TaskRegr$new(id = "cars", backend= data, target = "mpg")
# 当保留原数据集的行名时,task的feature就会多出一个名叫“rn“的列,代表rownames
task$feature_names
# [1] "cyl" "disp" "rn"
# 我们可以把rn这一列作为name这个角色
task$set_col_roles("rn", roles ="name")
# 当把“rn“设置为”name“角色后,它就不存在于feature中
task$feature_names
# [1] "cyl" "disp"
task$select(c("disp")) #只保留disp这个feature列
task$filter(1:3) # 只保留1到3行的数据
task$head() # 查看数据
代码语言:javascript复制task$cbind(data.table::data.table(foo =letters[1:3])) # 按列合并数据,也即添加一列新数据。
task$head() # 查看数据
关于mlr3包的Task对象的创建和操作就讲到这里,希望大家多多练习,熟练掌握!