mlr_filters_njmim: Minimal Normalised Joint Mutual Information Maximization...

mlr_filters_njmimR Documentation

Minimal Normalised Joint Mutual Information Maximization Filter

Description

Minimal normalised joint mutual information maximization filter calling praznik::NJMIM() from package praznik.

This filter supports partial scoring (see Filter).

Details

As the scores calculated by the praznik package are not monotone due to the greedy forward fashion, the returned scores simply reflect the selection order: 1, (k-1)/k, ..., 1/k where k is the number of selected features.

Threading is disabled by default (hyperparameter threads is set to 1). Set to a number ⁠>= 2⁠ to enable threading, or to 0 for auto-detecting the number of available cores.

Super class

mlr3filters::Filter -> FilterNJMIM

Methods

Public methods

Inherited methods

Method new()

Create a FilterNJMIM object.

Usage
FilterNJMIM$new()

Method clone()

The objects of this class are cloneable with this method.

Usage
FilterNJMIM$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

References

Kursa MB (2021). “Praznik: High performance information-based feature selection.” SoftwareX, 16, 100819. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1016/j.softx.2021.100819")}.

For a benchmark of filter methods:

Bommert A, Sun X, Bischl B, Rahnenführer J, Lang M (2020). “Benchmark for filter methods for feature selection in high-dimensional classification data.” Computational Statistics & Data Analysis, 143, 106839. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1016/j.csda.2019.106839")}.

See Also

  • PipeOpFilter for filter-based feature selection.

  • Dictionary of Filters: mlr_filters

Other Filter: Filter, mlr_filters, mlr_filters_anova, mlr_filters_auc, mlr_filters_boruta, mlr_filters_carscore, mlr_filters_carsurvscore, mlr_filters_cmim, mlr_filters_correlation, mlr_filters_disr, mlr_filters_find_correlation, mlr_filters_importance, mlr_filters_information_gain, mlr_filters_jmi, mlr_filters_jmim, mlr_filters_kruskal_test, mlr_filters_mim, mlr_filters_mrmr, mlr_filters_performance, mlr_filters_permutation, mlr_filters_relief, mlr_filters_selected_features, mlr_filters_univariate_cox, mlr_filters_variance

Examples

if (requireNamespace("praznik")) {
  task = mlr3::tsk("iris")
  filter = flt("njmim")
  filter$calculate(task, nfeat = 2)
  as.data.table(filter)
}

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

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

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

  graph$train(task)
}

mlr-org/mlr3featsel documentation built on April 14, 2024, 12:17 p.m.