Learn R Programming

mRMRe (version 2.1.2.1)

mRMRe.Filter-class: Class "mRMRe.Filter"

Description

mRMRe.Filter is a wrapper for various variants of the maximum relevance minimum redundancy (mRMR) feature selection/filter.

Note that mRMR.classic and mRMR.ensemble functions are wrappers to easily perform classical (single) and ensemble mRMR feature selection.

Arguments

Instantiation

Objects are created via calls of the form new("mRMRe.Filter", data, prior_weight, target_indices, levels, method, continuous_estimator, outX, bootstrap_count).

data: is expected to be a mRMRe.Data object.

target_indices: is expected to be a vector of type integer containing the indices of the features that will serve as targets for the feature selections.

levels: is expected to be a vector of type integer containing the number of children of each element at each level of the resulting filter tree.

method: is expected to be either exhaustive or bootstrap. The former uses the whole dataset to pick siblings in the tree according to the mRMR metric, while the latter perform the classical mRMR feature selection on several bootrstap selections of the dataset.

continuous_estimator: it specifies the estimators for correlation between two continuous variables; value is either pearson, spearman, kendall, frequency,

outX: set to TRUE (default value) to not count pairs of observations tied on x as a relevant pair. This results in a Goodman-Kruskal gamma type rank correlation.

bootstrap_count: Number of bootstraps to statistically compare the mRMR scores of each solution.

Since a mutual information matrix must be computed in order for feature selection to take place, the remaining arguments are identical to those required by the mim method of the mRMRe.Data object.

Slots

filters:

Object of class "list" containing for each target a solutions matrix.

mi_matrix:

Object of class "matrix" containing the combined mutual information matrix of the relevant targets.

causality_list:

Object of class "list" containing for each target a vector of causality coefficients between the target and its predictors.

sample_names:

Object of class "character" containing the sample names.

feature_names:

Object of class "character" containing the feature names.

target_indices:

Object of class "integer" containing the target indices.

fixed_feature_count:

Object of class "integer" containing the number of fixed features.

levels:

Object of class "integer" containing the desired topology of the tree.

scores:

Object of class "list" containing the mRMR score of selected features, respective to filters.

Methods

causality

signature(object = "mRMRe.Filter"): ...

featureCount

signature(object = "mRMRe.Filter"): Returns the number of features.

featureNames

signature(object = "mRMRe.Filter"): Returns a vector containing the feature names.

mim

signature(object = "mRMRe.Filter"): Returns the potentially partial mutual information matrix used for feature selection.

sampleCount

signature(object = "mRMRe.Filter"): Returns the number of samples.

sampleNames

signature(object = "mRMRe.Filter"): Returns a vector containing sample names.

solutions

signature(object = "mRMRe.Filter", mi_threshold = -Inf, causality_threshold = Inf): Returns a matrix in which each column represents a different solution (path from root of the tree to a leaf.)

target

signature(object = "mRMRe.Filter"): Returns a vector containing the target indices.

Author

Nicolas De Jay, Simon Papillon-Cavanagh, Benjamin Haibe-Kains

References

Ding, C. and Peng, H. (2005). "Minimum redundancy feature selection from microarray gene expression data". Journal of bioinformatics and computational biology, 3(2):185--205.

See Also

mRMRe.Data-class

Examples

Run this code
showClass("mRMRe.Filter")

set.thread.count(2)

## load data
data(cgps)

## build an mRMRe.Data object
ge <- mRMR.data(data = data.frame(cgps.ge[ , 1:100, drop=FALSE]))

## perform a classic (single) mRMR to select the 10 genes the most correlated with 
## the first gene but the less correlated between each other
exect <- system.time(fs <- new("mRMRe.Filter", data = ge, target_indices = 1,
					levels = c(8, 1, 1, 1, 1)))
print(exect)

## print the index of the selected features for each distinct mRMR solutions
print(solutions(fs)[[1]])

## print the names of the selected features for each distinct mRMR solutions
print(apply(solutions(fs)[[1]], 2, function(x, y) { return(y[x]) }, y=featureNames(ge)))

Run the code above in your browser using DataLab