wsrf: An R Package for Scalable Weighted Subspace Random Forests

License Version on CRAN Number of downloads from RStudio CRAN mirror

The wsrf is a parallel implementation of the Weighted Subspace Random Forest algorithm (wsrf) of Xu et al. A novel variable weighting method is used for variable subspace selection in place of the traditional approach of random variable sampling. This new approach is particularly useful in building models for high dimensional data—often consisting of thousands of variables. Parallel computation is used to take advantage of multi-core machines and clusters of machines to build random forest models from high dimensional data with reduced elapsed times.

Documentation & Examples

The package ships with a html vignette including more details and a few examples.


Currently, wsrf requires R (>= 3.3.0), Rcpp (>= 0.10.2). For the use of multi-threading, a C++ compiler with C++11 standard support of threads (for example, GCC 4.8.1) is required. Since the latest version of R has added support for C++11 on all operating systems, we do not provide support for the old version of R and C++ compiler without C++11 support. To install the latest version of the package, from within R run:

R> install.packages("wsrf")


Previous version of wsrf provide support on systems without C++11 or using Boost for multithreading. Though we do not provide support for these options anymore, but still leave the usage here for someone with needs of previous version of wsrf. The choice is available at installation time depending on what is available to the user:

# To install previous version of wsrf without C++11
R> install.packages("wsrf", type = "source", configure.args = "--enable-c11=no")

# To install previous version of wsrf with Boost for multithreading
R> install.packages("wsrf",
+                   type = "source",
+                   configure.args = "--with-boost-include=<Boost include path>
                                      --with-boost-lib=<Boost lib path>")

After installation, one can use the built-in function wsrfParallelInfo to query whether the version installed is what they really want (distributed or multi-threaded).

R> wsrfParallelInfo()


GPL (>= 2)