R: Regression forest

regression_forest {grf} | R Documentation

## Regression forest

### Description

Trains a regression forest that can be used to estimate the conditional mean function mu(x) = E[Y | X = x]

### Usage

    regression_forest(X, Y, sample.fraction = 0.5, mtry = NULL,
      num.trees = 2000, num.threads = NULL, min.node.size = NULL,
      honesty = TRUE, honesty.fraction = NULL, ci.group.size = 2,
      alpha = NULL, imbalance.penalty = NULL,
      compute.oob.predictions = TRUE, seed = NULL, clusters = NULL,
      samples_per_cluster = NULL, tune.parameters = FALSE,
      num.fit.trees = 10, num.fit.reps = 100, num.optimize.reps = 1000)

### Arguments

`X` | The covariates used in the regression.
`Y` | The outcome.
`sample.fraction` | Fraction of the data used to build each tree. Note: If honesty = TRUE, these subsamples will further be cut by a factor of honesty.fraction.
`mtry` | Number of variables tried for each split.
`num.trees` | Number of trees grown in the forest. Note: Getting accurate confidence intervals generally requires more trees than getting accurate predictions.
`num.threads` | Number of threads used in training. If set to NULL, the software automatically selects an appropriate amount.
`min.node.size` | A target for the minimum number of observations in each tree leaf. Note that nodes with size smaller than min.node.size can occur, as in the original randomForest package.
`honesty` | Whether to use honest splitting (i.e., sub-sample splitting).
`honesty.fraction` | The fraction of data that will be used for determining splits if honesty = TRUE. Corresponds to set J1 in the notation of the paper. When using the defaults (honesty = TRUE and honesty.fraction = NULL), half of the data will be used for determining splits
`ci.group.size` | The forest will grow ci.group.size trees on each subsample. In order to provide confidence intervals, ci.group.size must be at least 2.
`alpha` | A tuning parameter that controls the maximum imbalance of a split.
`imbalance.penalty` | A tuning parameter that controls how harshly imbalanced splits are penalized.
`compute.oob.predictions` | Whether OOB predictions on training set should be precomputed.
`seed` | The seed for the C++ random number generator.
`clusters` | Vector of integers or factors specifying which cluster each observation corresponds to.
`samples_per_cluster` | If sampling by cluster, the number of observations to be sampled from each cluster when training a tree. If NULL, we set samples_per_cluster to the size of the smallest cluster. If some clusters are smaller than samples_per_cluster, the whole cluster is used every time the cluster is drawn. Note that clusters with less than samples_per_cluster observations get relatively smaller weight than others in training the forest, i.e., the contribution of a given cluster to the final forest scales with the minimum of the number of observations in the cluster and samples_per_cluster.
`tune.parameters` | If true, NULL parameters are tuned by cross-validation; if false NULL parameters are set to defaults.
`num.fit.trees` | The number of trees in each 'mini forest' used to fit the tuning model.
`num.fit.reps` | The number of forests used to fit the tuning model.
`num.optimize.reps` | The number of random parameter values considered when using the model to select the optimal parameters.

### Value

A trained regression forest object.

### Examples

    ## Not run:
    # Train a standard regression forest.
    n = 50; p = 10
    X = matrix(rnorm(n*p), n, p)
    Y = X[,1] * rnorm(n)
    r.forest = regression_forest(X, Y)

    # Predict using the forest.
    X.test = matrix(0, 101, p)
    X.test[,1] = seq(-2, 2, length.out = 101)
    r.pred = predict(r.forest, X.test)

    # Predict on out-of-bag training samples.
    r.pred = predict(r.forest)

    # Predict with confidence intervals; growing more trees is now recommended.
    r.forest = regression_forest(X, Y, num.trees = 100)
    r.pred = predict(r.forest, X.test, estimate.variance = TRUE)

    ## End(Not run)

[Package grf version 0.10.2 Index]