56 lines
2.4 KiB
Markdown
56 lines
2.4 KiB
Markdown
# README
|
|
|
|
This R package is used to train random competing risks forests, ideally for large data.
|
|
It's based heavily off of [randomForestSRC](https://github.com/kogalur/randomForestSRC/), although there are some differences which are described in (TODO - link to paper here).
|
|
|
|
This package is still in a pre-release state and so it not yet available on CRAN.
|
|
To install it now, in R install the `devtools` package and run the following command:
|
|
```
|
|
R> devtools::install_git("https://git.joeltherrien.ca/joel/largeRCRF.git")
|
|
```
|
|
|
|
## System Requirements
|
|
|
|
You need:
|
|
|
|
* R version 3.4.2 or greater
|
|
* The `rJava` package version 0.9-9 or greater
|
|
* A Java runtime version 1.8 or greater
|
|
|
|
## Troubleshooting
|
|
|
|
### I get an `OutOfMemoryException` error but I have plenty of RAM
|
|
|
|
`largeRCRF` makes use of the Java virtual machine, which unfortunately restricts itself by default to a quarter of your system memory.
|
|
You can override the default by including **before** loading `largeRCRF` or any other `rJava` based package the following line:
|
|
|
|
```
|
|
R> options(java.parameters <- c("-Xmx13G", "-Xms13G"))
|
|
```
|
|
|
|
with `13G` replaced with a little less than your available system memory.
|
|
|
|
### I get an `OutOfMemoryException` error and I'm short on RAM
|
|
|
|
Obviously if you're short on RAM there is a limit on how large of a dataset you can train,
|
|
but there are some techniques you can use to limit how much `largeRCRF` needs.
|
|
|
|
* If your training dataset is large you might not want both R and `largeRCRF` to have their own separate copies
|
|
(limitations due to Java require `largeRCRF` have its own copy). When specifying the `data` parameter into `train`,
|
|
instead provide an environment containing one object called `data` which is the dataset. `largeRCRF` will delete that variable
|
|
after importing it into the Java environment.
|
|
|
|
Example:
|
|
```
|
|
R> data.env <- new.env()
|
|
R> data.env$data <- trainingData
|
|
R> rm(trainingData)
|
|
R> model <- train(..., data=data.env, ...)
|
|
```
|
|
|
|
* Each core that is training trees requires its own memory; you can try limiting `largeRCRF` to train only one tree at a time by specifiying `cores=1`.
|
|
|
|
* By default `largeRCRF` keeps the entire forest loaded in memory during training,
|
|
when in practice only the trees being trained on need to be loaded.
|
|
You can specify `savePath` to give a directory for `largeRCRF` to save trees in during training,
|
|
which will allow to `largeRCRF` to conserve memory for only those trees being currently trained.
|