Skip to content

boost_tree() defines a model that creates a series of decision trees forming an ensemble. Each tree depends on the results of previous trees. All trees in the ensemble are combined to produce a final prediction. This function can fit classification, regression, and censored regression models.

There are different ways to fit this model, and the method of estimation is chosen by setting the model engine. The engine-specific pages for this model are listed below.

¹ The default engine. ² Requires a parsnip extension package for censored regression, classification, and regression.

More information on how parsnip is used for modeling is at


  mode = "unknown",
  engine = "xgboost",
  mtry = NULL,
  trees = NULL,
  min_n = NULL,
  tree_depth = NULL,
  learn_rate = NULL,
  loss_reduction = NULL,
  sample_size = NULL,
  stop_iter = NULL



A single character string for the prediction outcome mode. Possible values for this model are "unknown", "regression", "classification", or "censored regression".


A single character string specifying what computational engine to use for fitting.


A number for the number (or proportion) of predictors that will be randomly sampled at each split when creating the tree models (specific engines only).


An integer for the number of trees contained in the ensemble.


An integer for the minimum number of data points in a node that is required for the node to be split further.


An integer for the maximum depth of the tree (i.e. number of splits) (specific engines only).


A number for the rate at which the boosting algorithm adapts from iteration-to-iteration (specific engines only). This is sometimes referred to as the shrinkage parameter.


A number for the reduction in the loss function required to split further (specific engines only).


A number for the number (or proportion) of data that is exposed to the fitting routine. For xgboost, the sampling is done at each iteration while C5.0 samples once during training.


The number of iterations without improvement before stopping (specific engines only).


This function only defines what type of model is being fit. Once an engine is specified, the method to fit the model is also defined. See set_engine() for more on setting the engine, including how to set engine arguments.

The model is not trained or fit until the fit() function is used with the data.

Each of the arguments in this function other than mode and engine are captured as quosures. To pass values programmatically, use the injection operator like so:

value <- 1
boost_tree(argument = !!value)


#> # A tibble: 5 × 2
#>   engine  mode          
#>   <chr>   <chr>         
#> 1 xgboost classification
#> 2 xgboost regression    
#> 3 C5.0    classification
#> 4 spark   classification
#> 5 spark   regression    

boost_tree(mode = "classification", trees = 20)
#> Boosted Tree Model Specification (classification)
#> Main Arguments:
#>   trees = 20
#> Computational engine: xgboost