R: Boosted regression forest (experimental)

boosted_regression_forest {grf} | R Documentation

## Boosted regression forest (experimental)

### Description

Trains a boosted regression forest that can be used to estimate the conditional mean function mu(x) = E[Y | X = x]. Selects number of boosting iterations based on cross-validation. This functionality is experimental and will likely change in future releases.

### Usage

    boosted_regression_forest(X, Y, sample.weights = NULL,
      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, seed = NULL, clusters = NULL,
      samples.per.cluster = NULL, tune.parameters = FALSE,
      num.fit.trees = 10, num.fit.reps = 100, num.optimize.reps = 1000,
      boost.steps = NULL, boost.error.reduction = 0.97,
      boost.max.steps = 5, boost.trees.tune = 10)

### Arguments

`X` | The covariates used in the regression.
`Y` | The outcome.
`sample.weights` | Weights given to each observation in estimation. If NULL, each observation receives the same weight.
`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.
`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.
`boost.steps` | The number of boosting iterations. If NULL, selected by cross-validation
`boost.error.reduction` | If boost.steps is NULL, the percentage of previous steps' error that must be estimated by cross validation in order to take a new step, default 0.95
`boost.max.steps` | The maximum number of boosting iterations to try when boost.steps NULL
`boost.trees.tune` | If boost.steps is NULL, the number of trees used to test a new boosting step when tuning boost.steps

### Value

A boosted regression forest object. $error contains the mean debiased error for each step, and $forests contains the trained regression forest for each step.

### Examples

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

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

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

    #Check how many boosting iterations were used
    print(length(boosted.forest$forests))

    ## End(Not run)

[Package grf version 0.10.3 Index]