mlr3 - 如何使用 `mlr3` 接口删除不完整的观察结果

mlr3 - how to remove incomplete observations using `mlr3` interface

是否可以使用 mlr3 过滤器或 pipeops 删除任务中不完整的观察结果 --- task <- TaskRegr$new("data", data, "y") ---?

我认为没有用于删除观察值的预处理运算符。

我要做的是在任务中使用 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 将被删除 in-place.

如果您想对不完整的观察结果进行插补,可以使用一些插补运算符,例如 PipeOpImputeConstant,它可以通过常数对特征进行插补。