praznik (version 7.0.0)

CMIM: Minimal conditional mutual information maximisation filter

Description

The method starts with a feature of a maximal mutual information with the decision \(Y\). Then, it greedily adds feature \(X\) with a maximal value of the following criterion: $$J(X)=\min(I(X;Y),\min_{W\in S} I(X;Y|W)),$$ where \(S\) is the set of already selected features.

Usage

CMIM(X, Y, k = 3, threads = 0)

Arguments

X

Attribute table, given as a data frame with either factors (preferred), booleans, integers (treated as categorical) or reals (which undergo automatic categorisation; see below for details). NAs are not allowed.

Y

Decision attribute; should be given as a factor, but other options are accepted, exactly like for attributes. NAs are not allowed.

k

Number of attributes to select. Must not exceed ncol(X).

threads

Number of threads to use; default value, 0, means all available to OpenMP.

Value

A list with two elements: selection, a vector of indices of the selected features in the selection order, and score, a vector of corresponding feature scores. Names of both vectors will correspond to the names of features in X. Both vectors will be at most of a length k, as the selection may stop sooner, even during initial selection, in which case both vectors will be empty.

References

"Fast Binary Feature Selection using Conditional Mutual Information Maximisation" F. Fleuret, JMLR (2004)

"Object recognition with informative features and linear classification" M. Vidal-Naquet and S. Ullman, IEEE Conference on Computer Vision and Pattern Recognition (2003).

Examples

Run this code
# NOT RUN {
data(MadelonD)
CMIM(MadelonD$X,MadelonD$Y,20)
# }

Run the code above in your browser using DataLab