Learn R Programming

VSURF (version 0.6)

VSURF.interp: Interpretation step of VSURF

Description

Interpretation step aims to select all variables related to the response for interpretation prupose. This is the second step of the VSURF function. It is designed to be executed after the thresholding step VSURF.thres.

Usage

VSURF.interp(x, y, vars, nfor.interp = 25, nsd = 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).
vars
A vector of variable indices. Typically, indices of variables selected by thresholding step (see value varselect.thres of VSURF.thres function).
nfor.interp
Number of forests grown.
nsd
Number of times the standard deviation of the minimum value of err.interp is multiplied. See details below.

Value

  • A list with the following components:
  • varselect.interpA vector of indices of selected variables.
  • err.interpA vector of the mean OOB error rates of the embedded random forests models.
  • sd.minThe standard deviation of OOB error rates associated to the random forests model attaining the minimum mean OOB error rate.
  • num.varselect.interpThe number of selected variables.
  • varselect.thresA vector of indexes of variables selected after "thresholding step", sorted according to their mean VI, in decreasing order.

Details

nfor.interp embedded random forests models are grown, starting with the random forest build with only the most important variable and ending with all variables. Then, err.min the minimum mean out-of-bag (OOB) error rate of these models and its associated standard deviation sd.min are computed. Finally, the smallest model (and hence its corresponding variables) having a mean OOB error less than err.min + nsd * sd.min is selected.

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.interp.tune

Examples

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

# 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.interp <- VSURF.interp(x=toys$x, y=toys$y, vars=toys.thres$varselect.thres)
toys.interp

Run the code above in your browser using DataLab