Skip to contents

eXtreme Gradient Boosting regression. Calls xgboost::xgb.train() from package xgboost.

Note

To compute on GPUs, you first need to compile xgboost yourself and link against CUDA. See https://xgboost.readthedocs.io/en/stable/build.html#building-with-gpu-support.

Custom mlr3 defaults

  • nrounds:

    • Actual default: no default.

    • Adjusted default: 1.

    • Reason for change: Without a default construction of the learner would error. Just setting a nonsense default to workaround this. nrounds needs to be tuned by the user.

  • nthread:

    • Actual value: Undefined, triggering auto-detection of the number of CPUs.

    • Adjusted value: 1.

    • Reason for change: Conflicting with parallelization via future.

  • verbose:

    • Actual default: 1.

    • Adjusted default: 0.

    • Reason for change: Reduce verbosity.

  • objective:

    • Actual default: reg:squarederror.

    • Adjusted default: survival:cox.

    • Reason for change: Changed to a survival objective.

Dictionary

This Learner can be instantiated via the dictionary mlr_learners or with the associated sugar function lrn():

mlr_learners$get("surv.xgboost")
lrn("surv.xgboost")

Meta Information

  • Task type: “surv”

  • Predict Types: “crank”, “lp”

  • Feature Types: “integer”, “numeric”

  • Required Packages: mlr3, mlr3learners, xgboost

Parameters

IdTypeDefaultRangeLevels
aft_loss_distributioncharacternormal-normal, logistic, extreme
aft_loss_distribution_scalenumeric-\((-\infty, \infty)\)-
alphanumeric0\([0, \infty)\)-
base_scorenumeric0.5\((-\infty, \infty)\)-
boostercharactergbtree-gbtree, gblinear, dart
callbackslistNULL--
colsample_bylevelnumeric1\([0, 1]\)-
colsample_bynodenumeric1\([0, 1]\)-
colsample_bytreenumeric1\([0, 1]\)-
disable_default_eval_metriclogicalFALSE-TRUE, FALSE
early_stopping_roundsintegerNULL\([1, \infty)\)-
etanumeric0.3\([0, 1]\)-
feature_selectorcharactercyclic-cyclic, shuffle, random, greedy, thrifty
fevallistNULL--
gammanumeric0\([0, \infty)\)-
grow_policycharacterdepthwise-depthwise, lossguide
interaction_constraintslist---
iterationrangelist---
lambdanumeric1\([0, \infty)\)-
lambda_biasnumeric0\([0, \infty)\)-
max_bininteger256\([2, \infty)\)-
max_delta_stepnumeric0\([0, \infty)\)-
max_depthinteger6\([0, \infty)\)-
max_leavesinteger0\([0, \infty)\)-
maximizelogicalNULL-TRUE, FALSE
min_child_weightnumeric1\([0, \infty)\)-
missingnumericNA\((-\infty, \infty)\)-
monotone_constraintsinteger0\([-1, 1]\)-
normalize_typecharactertree-tree, forest
nroundsinteger-\([1, \infty)\)-
nthreadinteger1\([1, \infty)\)-
ntreelimitinteger-\([1, \infty)\)-
num_parallel_treeinteger1\([1, \infty)\)-
objectivecharactersurvival:cox-survival:cox, survival:aft
one_droplogicalFALSE-TRUE, FALSE
predictorcharactercpu_predictor-cpu_predictor, gpu_predictor
print_every_ninteger1\([1, \infty)\)-
process_typecharacterdefault-default, update
rate_dropnumeric0\([0, 1]\)-
refresh_leaflogicalTRUE-TRUE, FALSE
sampling_methodcharacteruniform-uniform, gradient_based
sample_typecharacteruniform-uniform, weighted
save_namelist---
save_periodinteger-\([0, \infty)\)-
scale_pos_weightnumeric1\((-\infty, \infty)\)-
seed_per_iterationlogicalFALSE-TRUE, FALSE
sketch_epsnumeric0.03\([0, 1]\)-
skip_dropnumeric0\([0, 1]\)-
single_precision_histogramlogicalFALSE-TRUE, FALSE
strict_shapelogicalFALSE-TRUE, FALSE
subsamplenumeric1\([0, 1]\)-
top_kinteger0\([0, \infty)\)-
tree_methodcharacterauto-auto, exact, approx, hist, gpu_hist
tweedie_variance_powernumeric1.5\([1, 2]\)-
updaterlist---
verboseinteger1\([0, 2]\)-
watchlistlistNULL--
xgb_modellist---

References

Chen, Tianqi, Guestrin, Carlos (2016). “Xgboost: A scalable tree boosting system.” In Proceedings of the 22nd ACM SIGKDD Conference on Knowledge Discovery and Data Mining, 785--794. ACM. doi: 10.1145/2939672.2939785 .

See also

Other Learner: mlr_learners_classif.cv_glmnet, mlr_learners_classif.glmnet, mlr_learners_classif.kknn, mlr_learners_classif.lda, mlr_learners_classif.log_reg, mlr_learners_classif.multinom, mlr_learners_classif.naive_bayes, mlr_learners_classif.nnet, mlr_learners_classif.qda, mlr_learners_classif.ranger, mlr_learners_classif.svm, mlr_learners_classif.xgboost, mlr_learners_regr.cv_glmnet, mlr_learners_regr.glmnet, mlr_learners_regr.kknn, mlr_learners_regr.km, mlr_learners_regr.lm, mlr_learners_regr.ranger, mlr_learners_regr.svm, mlr_learners_regr.xgboost, mlr_learners_surv.cv_glmnet, mlr_learners_surv.glmnet, mlr_learners_surv.ranger

Super classes

mlr3::Learner -> mlr3proba::LearnerSurv -> LearnerSurvXgboost

Methods

Inherited methods


Method new()

Creates a new instance of this R6 class.

Usage


Method importance()

The importance scores are calculated with xgboost::xgb.importance().

Usage

LearnerSurvXgboost$importance()

Returns

Named numeric().


Method clone()

The objects of this class are cloneable with this method.

Usage

LearnerSurvXgboost$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

if (requireNamespace("xgboost", quietly = TRUE)) {
  learner = mlr3::lrn("surv.xgboost")
  print(learner)

  # available parameters:
learner$param_set$ids()
}
#> <LearnerSurvXgboost:surv.xgboost>
#> * Model: -
#> * Parameters: nrounds=1, nthread=1, verbose=0
#> * Packages: mlr3, mlr3proba, mlr3learners, xgboost
#> * Predict Type: crank
#> * Feature types: integer, numeric
#> * Properties: importance, missings, weights
#>  [1] "aft_loss_distribution"       "aft_loss_distribution_scale"
#>  [3] "alpha"                       "base_score"                 
#>  [5] "booster"                     "callbacks"                  
#>  [7] "colsample_bylevel"           "colsample_bynode"           
#>  [9] "colsample_bytree"            "disable_default_eval_metric"
#> [11] "early_stopping_rounds"       "eta"                        
#> [13] "feature_selector"            "feval"                      
#> [15] "gamma"                       "grow_policy"                
#> [17] "interaction_constraints"     "iterationrange"             
#> [19] "lambda"                      "lambda_bias"                
#> [21] "max_bin"                     "max_delta_step"             
#> [23] "max_depth"                   "max_leaves"                 
#> [25] "maximize"                    "min_child_weight"           
#> [27] "missing"                     "monotone_constraints"       
#> [29] "normalize_type"              "nrounds"                    
#> [31] "nthread"                     "ntreelimit"                 
#> [33] "num_parallel_tree"           "objective"                  
#> [35] "one_drop"                    "predictor"                  
#> [37] "print_every_n"               "process_type"               
#> [39] "rate_drop"                   "refresh_leaf"               
#> [41] "sampling_method"             "sample_type"                
#> [43] "save_name"                   "save_period"                
#> [45] "scale_pos_weight"            "seed_per_iteration"         
#> [47] "sketch_eps"                  "skip_drop"                  
#> [49] "single_precision_histogram"  "strict_shape"               
#> [51] "subsample"                   "top_k"                      
#> [53] "tree_method"                 "tweedie_variance_power"     
#> [55] "updater"                     "verbose"                    
#> [57] "watchlist"                   "xgb_model"