Skip to contents

Information gain filter calling FSelectorRcpp::relief() in package FSelectorRcpp.

Note

This filter can handle missing values in the features. However, the resulting filter scores may be misleading or at least difficult to compare if some features have a large proportion of missing values.

If a feature has no non-missing observation, the resulting score will be (close to) 0.

Super class

mlr3filters::Filter -> FilterRelief

Methods

Inherited methods


Method new()

Create a FilterRelief object.

Usage


Method clone()

The objects of this class are cloneable with this method.

Usage

FilterRelief$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

if (requireNamespace("FSelectorRcpp")) {
  ## Relief (default)
  task = mlr3::tsk("iris")
  filter = flt("relief")
  filter$calculate(task)
  head(filter$scores, 3)
  as.data.table(filter)
}
#>         feature     score
#>          <char>     <num>
#> 1: Petal.Length 0.3220339
#> 2:  Petal.Width 0.3187500
#> 3:  Sepal.Width 0.1820833
#> 4: Sepal.Length 0.1200000

if (mlr3misc::require_namespaces(c("mlr3pipelines", "FSelectorRcpp", "rpart"), quietly = TRUE)) {
  library("mlr3pipelines")
  task = mlr3::tsk("iris")

  # Note: `filter.frac` is selected randomly and should be tuned.

  graph = po("filter", filter = flt("relief"), filter.frac = 0.5) %>>%
    po("learner", mlr3::lrn("classif.rpart"))

  graph$train(task)
}
#> $classif.rpart.output
#> NULL
#>