【发布时间】:2021-01-25 00:49:54
【问题描述】:
是否可以在任务中删除不完整的观察 --- task <- TaskRegr$new("data", data, "y") --- 使用 mlr3 过滤器或 pipeops?
【问题讨论】:
-
新的 pipeop
PipeOpFilterRows将能够执行请求的行为。
是否可以在任务中删除不完整的观察 --- task <- TaskRegr$new("data", data, "y") --- 使用 mlr3 过滤器或 pipeops?
【问题讨论】:
PipeOpFilterRows 将能够执行请求的行为。
我认为没有用于删除观察的预处理运算符。
我要做的是在任务中使用filter 方法。
例子:
t = tsk("pima")
ids = complete.cases(t$data())
# number of incomplete observations
sum(!ids)
t$filter(which(ids))
# number of incomplete observations
# should be zero now
ids = complete.cases(t$data())
sum(!ids)
complete.cases 给出一个布尔向量,指示哪些行包含完整的观测值(没有 NA)。
filter 按参数中提供的行 ID 子集任务的数据。参数中未给出的行 ID 将被原地删除。
如果您想对不完整的观测值进行插补,可以使用一些插补运算符,例如 PipeOpImputeConstant,通过常数来插补特征。
【讨论】: