Learn R Programming

praznik (version 12.0.0)

NJMIM: Minimal normalised joint 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_{W\in S} \frac{I(X,W;Y)}{H(X,W,Y)},$$ where \(S\) is the set of already selected features.

Usage

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

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.

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). Single vector will be interpreted as a data.frame with one column. 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.

References

"Feature selection using Joint Mutual Information Maximisation" M. Bennasar, Y. Hicks and R. Setchi, (2015)

Examples

Run this code
data(MadelonD)
NJMIM(MadelonD$X,MadelonD$Y,20)

Run the code above in your browser using DataLab