selectFeatures {PAA}R Documentation

Select features using frequency-based or ensemble feature selection.

Description

Performs a multivariate feature selection using frequency-based feature selection (based on RF-RFE, RJ-RFE or SVM-RFE) or ensemble feature selection (based on SVM-RFE).

Usage

selectFeatures(elist = NULL, n1 = NULL, n2 = NULL, label1 = "A", label2 = "B",
 log=NULL, cutoff = 10, selection.method = "rf.rfe",
 preselection.method = "mMs", subruns = 100, k = 10, subsamples = 10,
 bootstraps = 10, candidate.number = 300, above=1500, between=400,
 panel.selection.criterion="accuracy", importance.measure="MDA", ntree = 500,
 mtry = NULL, plot = FALSE, output.path = NULL, verbose = FALSE,
 method = "frequency")

Arguments

elist

EListRaw or EList object containing all microarray data (mandatory).

n1

integer indicating the sample number in group 1 (mandatory).

n2

integer indicating the sample number in group 2 (mandatory).

label1

class label of group 1 (default: "A").

label2

class label of group 2 (default: "B").

log

indicates whether the data is in log scale (mandatory; note: if TRUE log2 scale is expected).

cutoff

integer indicating how many features will be selected (default: 10).

selection.method

string indicating the feature selection method: "rf.rfe" (default), "svm.rfe" or "rj.rfe". Has no effect when method="ensemble".

preselection.method

string indicating the feature preselection method: "mMs" (default), "tTest", "mrmr" or "none". Has no effect when method="ensemble".

subruns

integer indicating the number of resampling repeats to be performed (default: 100). Has no effect when method="ensemble".

k

integer indicating the number of k-fold cross validation subsets (default: 10, i.e., 10-fold CV).

subsamples

integer indicating the number of subsamples for ensemble feature selection (default: 10). Has no effect when method="frequency".

bootstraps

integer indicating the number of bootstrap samples for ensemble feature selection (default: 10). Has no effect when method="frequency" only.

candidate.number

integer indicating how many features shall be preselected. Default is "300". Has no effect when method="ensemble".

above

mMs above parameter (integer). Default is "1500". There will be no effect when method="ensemble".

between

mMs between parameter (integer). Default is "400". There will be no effect when method="ensemble".

panel.selection.criterion

indicating the panel selection criterion: "accuracy" (default), "sensitivity"
or "specificity". No effect for method="ensemble".

importance.measure

string indicating the random forest importance measure: "MDA" (default) or "MDG". Has no effect when method="ensemble".

ntree

random forest parameter ntree (default: "500"). There will be no effect when method="ensemble".

mtry

random forest parameter mtry (default: sqrt(p) where p is the number of predictors). Has no effect when method="ensemble".

plot

logical indicating whether performance plots shall be plotted (default: FALSE).

output.path

string indicating the results output folder (optional).

verbose

logical indicating whether additional information shall be printed to the console (default: FALSE).

method

the feature selection method: "frequency" (default) for frequency-based or "ensemble" for ensemble feature selection.

Details

This function takes an EListRaw or EList object, group-specific sample numbers, group labels and parameters choosing and configuring a multivariate feature selection method (frequency-based or ensemble feature selection) to select a panel of differential features. When an output path is defined (via output.path) results will be saved on the hard disk and when verbose is TRUE additional information will be printed to the console.

Frequency-based feature selection (method="frequency"): The whole data is splitted in k cross validation training and test set pairs. For each training set a multivariate feature selection procedure is performed. The resulting k feature subsets are tested using the corresponding test sets (via classification). As a result, selectFeatures() returns the average k-fold cross validation classification accuracy as well as the selected feature panel (i.e., the union set of the k particular feature subsets). As multivariate feature selection methods random forest recursive feature elimination (RF-RFE), random jungle recursive feature elimination (RJ-RFE) and support vector machine recursive feature elimination (SVM-RFE) are supported. To reduce running times, optionally, univariate feature preselection can be performed (control via preselection.method). As univariate preselection methods mMs ("mMs"), Student's t-test ("tTest") and mRMR ("mrmr") are supported. Alternatively, no preselection can be chosen ("none"). This approach is similar to the method proposed in Baek et al.

Ensemble feature selection (method="ensemble"): From the whole data the previously defined number of subsamples is drawn defining pairs of training and test sets. Moreover, for each training set a previously defined number of bootstrap samples is drawn. Then, for each bootstrap sample SVM-RFE is performed and a feature ranking is obtained. To obtain a final ranking for a particular training set, all associated bootstrap rankings are aggregated to a single ranking. To score the cutoff best features, for each subsample a classification of the test set is performed (using a svm trained with the cutoff best features from the training set) and the classification accuracy is determined. Finally, the stability of the subsample-specific panels is assessed (via Kuncheva index, Kuncheva LI, 2007), all subsample-specific rankings are aggregated, the top n features (defined by cutoff) are selected, the average classification accuracy is computed, and all these results are returned in a list. This approach has been proposed in Abeel et al.

Value

If method is "frequency", the results list contains the following elements:

accuracy

average k-fold cross validation accuracy.

sensitivity

average k-fold cross validation sensitivity.

specificity

average k-fold cross validation specificity.

features

selected feature panel.

all.results

complete cross validation results.

If method is "ensemble", the results list contains the following elements:

accuracy

average accuracy regarding all subsamples.

sensitivity

average sensitivity regarding all subsamples.

specificity

average specificity regarding all subsamples.

features

selected feature panel.

all.results

all feature ranking results.

stability

stability of the feature panel (i.e., Kuncheva index for the subrun-specific panels).

Author(s)

Michael Turewicz, michael.turewicz@rub.de

References

Baek S, Tsai CA, Chen JJ.: Development of biomarker classifiers from high- dimensional data. Brief Bioinform. 2009 Sep;10(5):537-46.

Abeel T, Helleputte T, Van de Peer Y, Dupont P, Saeys Y: Robust biomarker identification for cancer diagnosis with ensemble feature selection methods. Bioinformatics. 2010 Feb 1;26(3):392-8.

Kuncheva, LI: A stability index for feature selection. Proceedings of the IASTED International Conference on Artificial Intelligence and Applications. February 12-14, 2007. Pages: 390-395.

Examples

cwd <- system.file(package="PAA")
load(paste(cwd, "/extdata/Alzheimer.RData", sep=""))
elist <- elist[elist$genes$Block < 10,]

c1 <- paste(rep("AD",20), 1:20, sep="")
c2 <- paste(rep("NDC",20), 1:20, sep="")

pre.sel.results <- preselect(elist=elist, columns1=c1, columns2=c2, label1="AD",
 label2="NDC", log=FALSE, discard.threshold=0.1, fold.thresh=1.9,
 discard.features=TRUE, method="tTest")
elist <- elist[-pre.sel.results$discard,]

selectFeatures.results <- selectFeatures(elist, n1=20, n2=20, label1="AD",
    label2="NDC", log=FALSE, subsamples=2, bootstraps=1, candidate.number=20,
    method="ensemble")

[Package PAA version 1.26.0 Index]