Learn R Programming

VSURF (version 0.6)

VSURF.thres: Thresholding step of VSURF

Description

Thresholding step is dedicated to roughly eliminate irrelevant variables a the dataset. This is the first step of the VSURF function. For refined variable selection, see VSURF other steps: VSURF.interp and VSURF.pred.

Usage

VSURF.thres(x, y, ntree=500,
            mtry=if (!is.factor(y)) max(floor(ncol(x)/3), 1)
                 else floor(sqrt(ncol(x))),
            nfor.thres=50, nmin=1)

Arguments

x
A data frame or a matrix of predictors, the columns represent the variables.
y
A response vector (must be a factor for classification problems and numeric for regression ones).
ntree
Number of trees in each forest grown. Standard randomForest parameter.
mtry
Number of variables randomly sampled as candidates at each split. Standard randomForest parameter.
nfor.thres
Number of forests grown.
nmin
Number of times the "minimum value" is multiplied to set threshold value. See details below.

Value

  • A list with the following components:
  • varselect.thresA vector of indices of selected variables, sorted according to their mean VI, in decreasing order.
  • imp.varselect.thresA vector of importances of the varselect.thres variables.
  • min.thresThe minimum predicted value of a pruned CART tree fitted to the curve of the standard deviations of VI.
  • num.varselect.thresThe number of selected variables.
  • ord.impA list containing the order of all variables mean importance. $x contains the mean importances in decreasing order. $ix contains indices of the variables.
  • ord.sdA vector of standard deviations of all variables importances. The order is given by ord.imp.
  • mean.perfThe mean OOB error rate, obtained by a random forests build with all variables.
  • pred.pruned.treeeThe predictions of the CART tree fitted to the curve of the standard deviations of VI.

Details

First, nfor.thres random forests are computed using the function randomForest with arguments importance=TRUE. Then variables are sorted according to their mean variable importance (VI), in decreasing order. This order is kept all along the procedure. Next, a threshold is computed: min.thres, the minimum predicted value of a pruned CART tree fitted to the curve of the standard deviations of VI. Finally, the actual thresholding is performed: only variables with a mean VI larger than nmin * min.thres are kept.

References

Genuer, R. and Poggi, J.M. and Tuleau-Malot, C. (2010), Variable selection using random forests, Pattern Recognition Letters 31(14), 2225-2236

See Also

VSURF, VSURF.thres.tune

Examples

Run this code
data(iris)
iris.thres <- VSURF.thres(x=iris[,1:4], y=iris[,5], ntree=100, nfor.thres=20)
iris.thres

# A more interesting example with toys data (see ?toys)
# (less than 1 min to execute)
data(toys)
toys.thres <- VSURF.thres(x=toys$x, y=toys$y)
toys.thres

Run the code above in your browser using DataLab