Random Ferns classifier for R https://cran.r-project.org/web/packages/rFerns/index.html

Miron Bartosz Kursa 04d0fe1d8a Support for platforms without OpenMP 3 years ago
R 51cd66a635 More minor fixes 3 years ago
inst 51cd66a635 More minor fixes 3 years ago
man 51cd66a635 More minor fixes 3 years ago
side_src 51cd66a635 More minor fixes 3 years ago
src 04d0fe1d8a Support for platforms without OpenMP 3 years ago
tests 0d765b2ae4 Semicolons out 3 years ago
.Rbuildignore ff07bbe788 Cleanup 3 years ago
.gitignore 6451283ec2 Modernised 4 years ago
DESCRIPTION 010331e472 Updated descriptions, NotABug linked 3 years ago
NAMESPACE 61afde65a2 Fast dynamic registration 4 years ago
README.md 8d5fd0d255 HTTPS links 3 years ago


rFerns CRAN downloads

rFerns is an extended random ferns implementation for R; in comparison to original, it can handle standard information system containing both categorical and continuous attributes. Moreover, it generates OOB error approximation and permutation-based attribute importance measure similar to randomForest. Here is a paper with all the details.

rFerns is good for doing training fast, in predictable time and utilising many CPU cores; in general it is less accurate than Random Forest, yet not substantially, and obviously there are cases in which it is better. It is also nice as a very fast variable importance source; in fact it was created to speed-up the Boruta all relevant feature selector, and it did pretty well. Even more, not it can produce shadow importance, i.e., a heuristic way to reason about significance of importance scores; the package contains a naiveWrapper function which implements a simple feature selector based on it, and you can read all about it here. Finally, it is a very stochastic method, practically doing no optimisation at all; basically it is crazy that it works. Hence, it is theoretically interesting (;

There is also a Spark version (not mine), Sparkling Ferns.

Contributions are welcome, but please make pull requests against the devel branch.

How to use

Quite fresh version should be on CRAN, you can also install directly from NotABug with:


For a bleeding edge (but working) version, install from the devel branch:


If you want to use it / test it apart from R, it is quite possible -- consult side_src/test.c to see how this may work. Yet don't expect that this will ever become a standalone library.