Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
362 commits
Select commit Hold shift + click to select a range
7c81681
version bump to 0.1.5
Feb 5, 2015
33d5daf
remove note again from help
Feb 5, 2015
1017a8a
add GenABEL part to doc
Feb 5, 2015
25e525a
add GenABEL part to doc
Feb 5, 2015
620dfb7
save only the terminal nodeID in prediction, saving memory?
Feb 9, 2015
043fcea
add changes to changelog
Feb 9, 2015
89c5a0c
add parameter to respect unordered factors
Feb 18, 2015
9a164ad
start implementing cat splitting
Feb 18, 2015
0ecd64c
add release for v0.1.6
Feb 19, 2015
76fcbef
classification working now?
Feb 19, 2015
9ed7265
add factor test data
Feb 19, 2015
265c85e
clean up
Feb 19, 2015
0bb709b
classification working
Feb 19, 2015
448ded8
work on regression
Feb 19, 2015
4f9d97f
all treetypes working now
Feb 20, 2015
b636361
working for all tree types
Feb 20, 2015
e377c30
clean up
Feb 20, 2015
58cf72c
remove text from R help
Feb 20, 2015
c95e808
prediction in c++ now working
Feb 20, 2015
35eba8b
still error in R prediction
Feb 20, 2015
b7ec267
R prediction working
Feb 20, 2015
4cccd9f
tested, working
Feb 23, 2015
2966a4d
fix windows problem
Feb 23, 2015
1b644b8
memory problems for survival
Feb 23, 2015
3ffbef0
memory problems for survival
Feb 23, 2015
01fe940
fix memory leak in survival tree
Feb 23, 2015
6f0eb8b
add memory test data
Feb 23, 2015
8a4253d
working now
Feb 23, 2015
68e0df9
add regression test file
Feb 23, 2015
2d045fe
add benchmark script
Feb 23, 2015
98f9f73
Merge branch 'categorical_splitting'
Feb 24, 2015
ea72f7e
version bump to 0.1.7
Feb 24, 2015
22ec126
add pariwise importance version
Feb 25, 2015
c7abc7f
merge new master in AUC version
Mar 20, 2015
e89ae05
add gitgignore
Mar 20, 2015
b822931
Merge branch 'cindex_splitting' of ssh://bioweb2.imbs.uk-sh.de:22222/…
Mar 20, 2015
cce6dbb
reorder methods in TreeSurvival
Mar 20, 2015
bbf6a45
remove double probability
Mar 20, 2015
338e8bb
add comment for unordered auc splitting
Mar 20, 2015
b113b14
add release auc version
Mar 20, 2015
634c68d
new version number
Apr 7, 2015
8941247
load unique timepoints
Apr 7, 2015
b2b1af1
new package structure
Apr 7, 2015
e307a6e
add rcppexports to gitignore
Apr 7, 2015
31fc358
cleanup
Apr 7, 2015
bcde3d0
cleanup and changelog
Apr 7, 2015
9044bfe
add 0.1.8 release version
Apr 7, 2015
9fe7476
merge new version in auc version
Apr 7, 2015
f38c4af
add new auc splitting version
Apr 7, 2015
8daf75c
remove memory modes from R version
Apr 7, 2015
25cf2c6
add save memory option
Apr 7, 2015
604d996
add sort function to data
Apr 7, 2015
a2d4fb8
add optimal method for classification
Apr 7, 2015
e844ba2
classification working
Apr 7, 2015
78a4433
add new splitting method for regression
Apr 8, 2015
f89c7ab
add new splitting method for probability
Apr 8, 2015
b5355ac
survival working but slow and dirty
Apr 8, 2015
f74e83c
fix numerator typo
Apr 8, 2015
1aa7a01
work on better survival
Apr 8, 2015
1e156bf
survival cleaner
Apr 9, 2015
c058518
survival working with left child, but still slow
Apr 9, 2015
19bf61d
remove death loop
Apr 9, 2015
bc51450
new method working
Apr 9, 2015
a12991b
survival finished but very slow ..
Apr 9, 2015
6bccd41
use arrays for surivval
Apr 9, 2015
bbf7494
remove new survival method again
Apr 9, 2015
21c5bf9
loop only until num unique -1
Apr 9, 2015
8f75fe6
dont sort data for survival
Apr 9, 2015
3b1ff79
remove comments
Apr 9, 2015
2c5a248
use arrays for splitting
Apr 9, 2015
99e1b9e
clean up
Apr 9, 2015
2406e3b
doc
Apr 9, 2015
65d2527
remove comments from survival
Apr 9, 2015
c58bdf2
add test version
Apr 9, 2015
5f1706a
q value for classification
Apr 14, 2015
3b4cb30
finish newsplit
Apr 14, 2015
89d2597
add comment that formula interface impossible to use in some cases
Apr 14, 2015
46bd44c
merge new splitting method -> v0.1.9
Apr 14, 2015
9cff308
getIndex returns no double
Apr 14, 2015
140942a
getIndex returns no double
Apr 14, 2015
9800860
update to 0.1.9
Apr 17, 2015
542a543
add new date
Apr 17, 2015
76b3359
add prediction test
Apr 17, 2015
d2b753c
fix classification prediction
Apr 17, 2015
0eca62e
avoid copying the data
Apr 20, 2015
0a28f42
back to std
Apr 20, 2015
a3fa689
allow matrix as input data
Apr 20, 2015
fae89b3
new version
Apr 20, 2015
035f430
add new tests and fix independnet variable names
Apr 20, 2015
a100c2a
fix gwaa matrix classification
Apr 21, 2015
b606c0b
back to classification arg
Apr 21, 2015
afc0cf8
add matrix to doc
Apr 21, 2015
78506e9
non-recursive splitting
Apr 23, 2015
2ee33c3
classification working
Apr 23, 2015
506ce8a
remove recursion and pre-allocate counter space
Apr 23, 2015
a8bccac
remove recursion and pre-allocate counter space
Apr 23, 2015
1ff8545
update wishlist
Apr 23, 2015
3ac0ff3
replace find by lower_bound
Apr 24, 2015
51682d1
merge new sort method
Apr 24, 2015
1224b4a
add package clean
Apr 24, 2015
a5ee105
update date
Apr 28, 2015
565264c
change back to non-preallocated counters
Apr 29, 2015
12ea8cc
pre-allocate space
May 4, 2015
a9fdb82
new version with preallocated space
May 4, 2015
5e6148e
fix bug in savemem mode
May 5, 2015
4041df7
new date
May 6, 2015
00d4775
add new version to submit to JSS
May 7, 2015
5a6c7e8
change README file
May 7, 2015
c62eb78
add 0.2.4 release
May 7, 2015
8ee54a9
fix matrix survival interface -> new version
May 12, 2015
8123324
add cpp version
May 12, 2015
07e3ad2
add windows package
May 13, 2015
cf53fd9
merge master in AUC
Jul 27, 2015
3bba58e
rename AUC splitting to C
Jul 27, 2015
c7b59db
add 0.2.6 release version
Jul 27, 2015
618d653
fix missing value problem
Jul 28, 2015
0183fd6
changelog
Jul 28, 2015
ecd09db
fix check issues
Jul 28, 2015
c147f55
add new release src
Jul 28, 2015
3188f5b
add win version of release
Jul 28, 2015
e60aae2
fix solaris problem -> 0.2.7
Jul 29, 2015
10a6812
change readme and add new cpp version
Jul 30, 2015
da3baf1
add cpp windows binary build
Aug 13, 2015
150df44
remove version number from readme
Aug 19, 2015
a92da33
fix predict seed
Aug 19, 2015
778a2f9
add gwaa test data
Aug 19, 2015
c915e26
fix bug for single prediction observation
Aug 25, 2015
821e55a
vector instead of set for drawWithoutReplacementSkip test
Sep 1, 2015
d387170
add test readme
Sep 1, 2015
f39528a
cleanup test directory
Sep 1, 2015
52ad339
rename r package directory
Sep 1, 2015
3091b98
remove absolute path from create package script
Sep 1, 2015
bcf4ce3
readme to markdown
Sep 1, 2015
f567a16
changelog to markdown
Sep 1, 2015
4ce194e
update package directory structure
Sep 1, 2015
72baf78
add travis config
Sep 15, 2015
c2f7c62
build R package in travis
Sep 15, 2015
d77315c
remove travis tool
Sep 15, 2015
4cb8d12
fix package path
Sep 15, 2015
cf8ffbe
re-add travis tools
Sep 15, 2015
b6c8636
re-add travis tools
Sep 15, 2015
7ffcd19
Merge pull request #3 from mnwright/test_travis
mnwright Sep 15, 2015
b1d63c3
add testthat to R check
Sep 16, 2015
815a703
add testthat to R check
Sep 16, 2015
896f6ca
remove GenABEL tests to not depend on package
Sep 16, 2015
b75e4b8
add namespace to rangerCpp
Sep 16, 2015
ebc83ae
add man files -> no roxygen required to build package
Sep 16, 2015
7a039af
add Rcpp install
Sep 16, 2015
3d9c2ce
reproduce issue
Sep 28, 2015
2368eb3
fix issue #6
Sep 29, 2015
5211441
Merge pull request #9 from mnwright/fix_interface_bug
mnwright Sep 29, 2015
5b0ebc4
old travis style
Oct 5, 2015
f3c0453
new travis style
Oct 5, 2015
5d47ab4
add RcppExports files
Oct 5, 2015
0a6dc2b
Merge pull request #10 from mnwright/test_travis
mnwright Oct 5, 2015
293dc47
add Travis status
Oct 5, 2015
4219e63
allow user interrupt, issue #5
Oct 5, 2015
ec7482d
allow user interrupt, issue #5
Oct 5, 2015
b37c145
reproduce bug
Oct 6, 2015
2cbe985
fix bug
Oct 6, 2015
704c8ba
Merge pull request #11 from mnwright/fix_twoclass
mnwright Oct 6, 2015
ee44c48
reproduce bug
Oct 9, 2015
9f345fb
fix bug: Prediction not working if alternative interface used with cl…
Oct 9, 2015
4c34704
Merge pull request #12 from mnwright/fix_alt_interface_prediction
mnwright Oct 9, 2015
f543257
sum importance values in-place per thread (issue #2)
Oct 12, 2015
f3409e3
reserve variance space
Oct 12, 2015
1693bad
sum Gini importance values in-place per thread (issue #2)
Oct 12, 2015
2a47307
update CHANGELOG
Oct 12, 2015
062a50e
Merge pull request #13 from mnwright/importance_memory
mnwright Oct 12, 2015
e069a1a
remove warning if data has two classes in predict
Oct 12, 2015
31ae113
reproduce
Oct 12, 2015
43dbaca
Handle character columns.
Oct 12, 2015
a646718
Merge pull request #14 from mnwright/fix_char_column
mnwright Oct 12, 2015
d6a2b20
change to RcppProgress
Oct 16, 2015
c00c993
fix date conflict
Oct 16, 2015
1282ddd
includes to header
Oct 16, 2015
266d59b
working with RcppProgress
Oct 16, 2015
acf2902
version without RcppProgress
Oct 16, 2015
f835a5e
fix user interrupt in windows
Oct 16, 2015
92547d2
Merge pull request #16 from mnwright/allow_interrupt
mnwright Oct 16, 2015
ed1908f
fix issue #5
Oct 16, 2015
0bb2e3b
test for issue #4
Nov 10, 2015
65d4ecc
implement issue #4
Nov 10, 2015
934a8bf
Merge pull request #20 from mnwright/confusion_matrix
mnwright Nov 10, 2015
bfb38c2
add links to github and preprint
Nov 10, 2015
1687904
new version for cran
Nov 10, 2015
704c833
rename changelog to news
Nov 10, 2015
6287f4c
add NEWS files to R package
Nov 10, 2015
8e1f253
release CRAN version
Nov 10, 2015
d88d3c9
change version in news file
Nov 10, 2015
8324d65
add test for gcc version
Nov 16, 2015
f852860
check for gcc version
Nov 16, 2015
fae27ad
use std=c++11 flag instead of CXX_STD = CXX11, should work on gcc >=4…
Nov 16, 2015
32068db
use preprocessor directives to check for c++11
Nov 16, 2015
0b49176
use preprocessor directives to check for c++11
Nov 16, 2015
e44f734
Merge pull request #21 from mnwright/check_gcc_version
mnwright Nov 16, 2015
ae44adf
add case weights
Nov 23, 2015
c361f4a
Merge pull request #22 from mnwright/weighted_sampling
mnwright Nov 23, 2015
e41d7ed
add case weights to NEWS
Nov 23, 2015
77e10f4
update R NEWS, too
Nov 23, 2015
36d7bb9
add case-specific RF
Nov 24, 2015
eb2ee08
add changes to NEWS, new version
Nov 24, 2015
23e7f37
add help to CSRF
Nov 24, 2015
9a217a5
fix help typo
Nov 24, 2015
acb2ded
add tests for csrf
Nov 25, 2015
ef6b515
reduce number of trees for csrf tests
Nov 25, 2015
357e0fa
better help for CSRF
Nov 27, 2015
0be2b33
Merge pull request #24 from mnwright/case_specific_rf
mnwright Nov 27, 2015
1449a01
small changes to documentation
Nov 30, 2015
8f7f9db
changelog and date
Dec 1, 2015
c107802
add predict.all option
Dec 1, 2015
f4f434a
add option to c++ version
Dec 1, 2015
4f70f0d
predict.all option only for classification and regression
Dec 1, 2015
58ddaca
add tree-wise prediction
Dec 1, 2015
28b9903
add tree-wise prediction
Dec 1, 2015
b162e56
fix file output
Dec 1, 2015
3d20735
fix predict.forest
Dec 1, 2015
b09e035
fix vector size
Dec 1, 2015
4b5e682
add tests
Dec 1, 2015
469d9e0
fix R return value
Dec 1, 2015
a793ae4
add more tests for predict.all option
Dec 1, 2015
8a4d904
implement issues #18 #23
Dec 1, 2015
9e3d770
Merge pull request #25 from mnwright/predict_all
mnwright Dec 1, 2015
9c93cf8
add note on factor levels for classification
Dec 1, 2015
22a13fe
add tree-wise split select weights
Dec 3, 2015
e6f9828
add tests for tree-wise split select weights
Dec 3, 2015
884e280
add tree-wise split select weights to doc
Dec 3, 2015
e811c27
Merge pull request #26 from mnwright/tree_splitweights
mnwright Dec 3, 2015
591b2d2
fix return value documentation in ranger function
Dec 8, 2015
e6a5194
Add download count badges
mnwright Dec 17, 2015
3a33bc6
add new release version
Jan 5, 2016
3fe0be1
add option to keep inbag counts of observations per tree
Jan 6, 2016
23d0bfc
Merge pull request #30 from mnwright/return_inbag
mnwright Jan 6, 2016
ee8a218
add sample.fraction option to control fraction of samples sampled, is…
Jan 6, 2016
ac6b07f
Merge pull request #31 from mnwright/sample_fraction
mnwright Jan 6, 2016
8e8d7a8
fix unsigned/signed warning
Jan 7, 2016
6ba8305
add windows binary
Jan 7, 2016
1933821
reproduce issue #33
Jan 26, 2016
f205382
fix issue #33
Jan 26, 2016
bd27c0c
new version and new Roxygen version
Jan 26, 2016
c794c73
Merge pull request #34 from mnwright/prediction_problem
mnwright Jan 26, 2016
d5c6a57
reproduce bug if survival tree without OOB observations
Jan 27, 2016
f8ce2fa
fix bug
Jan 27, 2016
54cbad9
Merge pull request #35 from mnwright/fix_survival
mnwright Jan 27, 2016
5f69ecf
add new windows binaries
Jan 28, 2016
0808364
reproduce issue #36
Feb 8, 2016
c972efc
fix as.factor() bug
Feb 8, 2016
970a289
fix issue #36
Feb 8, 2016
853ee65
Merge pull request #37 from mnwright/issue36
mnwright Feb 8, 2016
54dffd5
Split ranger binary into lib and binary.
0x7f Feb 15, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.Rproj.user
23 changes: 23 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
language: r
warnings_are_errors: true
sudo: required

env:
global:
- CRAN: http://cran.rstudio.com

before_install:
- cd ./ranger-r-package/ranger
- sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test -y
- sudo apt-get -qq update
- sudo apt-get -qq install gcc-4.8
- sudo apt-get -qq install g++-4.8
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 90
- sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 90

notifications:
email:
recipients:
- work@wrig.de
on_success: change
on_failure: change
100 changes: 100 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
##### Version 0.3.8
* Small fixes

##### Version 0.3.7
* Fix bug with alternative interface and prediction

##### Version 0.3.6
* Add keep.inbag option to track in-bag counts
* Add option sample.fraction for fraction of sampled observations

##### Version 0.3.5
* Add tree-wise split.select.weights

##### Version 0.3.4
* Add predict.all option in predict() to get individual predictions for each tree for classification and regression
* Small changes in documentation

##### Version 0.3.3
* Add case-specific random forests

##### Version 0.3.2
* Add case weights (weighted bootstrapping or subsampling)

##### Version 0.3.1
* Catch error of outdated gcc not supporting C++11 completely

##### Version 0.3.0
* Allow the user to interrupt computation from R
* Transpose classification.table and rename to confusion.matrix
* Respect R seed for prediction
* Memory improvements for variable importance computation
* Fix bug: Probability prediction for single observations
* Fix bug: Results not identical when using alternative interface

##### Version 0.2.7
* Small fixes for Solaris compiler

##### Version 0.2.6
* Add C-index splitting
* Fix NA SNP handling

##### Version 0.2.5
* Fix matrix and gwaa alternative survival interface
* Version submitted to JSS

##### Version 0.2.4
* Small changes in documentation

##### Version 0.2.3
* Preallocate memory for splitting

##### Version 0.2.2
* Remove recursive splitting

##### Version 0.2.1
* Allow matrix as input data in R version

##### Version 0.2.0
* Fix prediction of classification forests in R

##### Version 0.1.9
* Speedup growing for continuous covariates
* Add memory save option to save memory for very large datasets (but slower)
* Remove memory mode option from R version since no performance gain

##### Version 0.1.8
* Fix problems when using Rcpp <0.11.4

##### Version 0.1.7
* Add option to split on unordered categorical covariates

##### Version 0.1.6
* Optimize memory management for very large survival forests

##### Version 0.1.5
* Set required Rcpp version to 0.11.2
* Fix large $call objects when using BatchJobs
* Add details and example on GenABEL usage to documentation
* Minor changes to documentation

##### Version 0.1.4
* Speedup for survival forests with continuous covariates
* R version: Generate seed from R. It is no longer necessary to set the
seed argument in ranger calls.

##### Version 0.1.3
* Windows support for R version (without multithreading)

##### Version 0.1.2
* Speedup growing of regression and probability prediction forests
* Prediction forests are now handled like regression forests: MSE used for
prediction error and permutation importance
* Fixed name conflict with randomForest package for "importance"
* Fixed a bug: prediction function is now working for probability
prediction forests
* Slot "predictions" for probability forests now contains class probabilities
* importance function is now working even if randomForest package is
loaded after ranger
* Fixed a bug: Split selection weights are now working as expected
* Small changes in documentation
59 changes: 0 additions & 59 deletions README

This file was deleted.

59 changes: 59 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
[![Build Status](https://travis-ci.org/mnwright/ranger.svg?branch=master)](https://travis-ci.org/mnwright/ranger)
![CRAN Downloads month](http://cranlogs.r-pkg.org/badges/ranger?color=brightgreen)
![CRAN Downloads overall](http://cranlogs.r-pkg.org/badges/grand-total/ranger?color=brightgreen)
## ranger: A Fast Implementation of Random Forests
Marvin N. Wright, wright@imbs.uni-luebeck.de

### Introduction
Ranger is a fast implementation of random forest (Breiman 2001) or recursive partitioning, particularly suited for high dimensional data. Classification, regression, probability estimation and survival forests are supported. Classification and regression forests are implemented as in the original Random Forest (Breiman 2001), survival forests as in Random Survival Forests (Ishwaran et al. 2008). For probability estimation forests see Malley et al. (2012).

Ranger is written in C++, but a version for R is avaiable, too. We recommend to use the R version. It is easy to install and use and the results are readily available for further analysis. The R version is as fast as the pure C++ version.

### Installation
To install the Ranger R package from CRAN, just run

```R
install.packages("ranger”)
```

R version >= 3.1 is required. Note that, for now, no multithreading is supported in the R version on Windows platforms (the compiler in RTools is too old).

To install the C++ version of Ranger in Linux or Mac OS X you will need a compiler supporting C++11 (i.e. gcc >= 4.7 or Clang >= 3.0) and Cmake. To build start a terminal from the Ranger main directory and run the following commands

```bash
cd source
mkdir build
cd build
cmake ..
make
```

After compilation there should be an executable called "ranger" in the build directory.

To run the C++ version in Microsoft Windows please cross compile or ask for a binary.

### Usage
For usage of the R version see ?ranger in R. Most importantly, see the Examples section. As a first example you could try

```R
ranger(Species ~ ., data = iris)
```

In the C++ version type

```bash
ranger --help
```

for a list of commands. First you need a training dataset in a file. This file should contain one header line with variable names and one line with variable values per sample. Variable names must not contain any whitespace, comma or semicolon. Values can be seperated by whitespace, comma or semicolon but can not be mixed in one file. A typical call of Ranger would be for example

```bash
ranger --verbose --file data.dat --depvarname Species --treetype 1 --ntree 1000 --nthreads 4
```

If you find any bugs, or if you experience any crashes, please report to us. If you have any questions just ask, we won't bite.

### References
* Breiman, L. (2001). Random forests. Machine learning, 45(1), 5-32.
* Ishwaran, H., Kogalur, U. B., Blackstone, E. H., & Lauer, M. S. (2008). Random survival forests. The Annals of Applied Statistics, 841-860.
* Malley, J. D., Kruppa, J., Dasgupta, A., Malley, K. G., & Ziegler, A. (2012). Probability machines: consistent probability estimation using nonparametric learning machines. Methods Inf Med, 51(1), 74.
3 changes: 0 additions & 3 deletions R_package/.gitignore

This file was deleted.

2 changes: 0 additions & 2 deletions R_package/Makevars

This file was deleted.

75 changes: 0 additions & 75 deletions R_package/create_package.R

This file was deleted.

Loading