Marginal Impact of Hyperparameter Tuning with XGBoost

0
1465
Marginal Impact of Hyperparameter Tuning with XGBoost


modeling contexts, the XGBoost algorithm reigns supreme. It gives efficiency and effectivity good points over different tree-based strategies and different boosting implementations. The XGBoost algorithm features a laundry record of hyperparameters, though often solely a subset is chosen through the hyperparameter tuning course of. In my expertise, I’ve at all times used a grid search technique utilizing k-fold cross-validation to establish the optimum mixture of hyperparameters, though there are different strategies for hyperparameter tuning with the hyperopt library that may search the hyperparameter house extra systematically.

By means of my work constructing XGBoost fashions throughout totally different tasks, I got here throughout the nice useful resource Efficient XGBoost by Matt Harrison, a textbook masking XGBoost, together with the best way to tune hyperparameters. Chapter 12 of the e-book is devoted to tuning hyperparameters utilizing the hyperopt library; nevertheless, there have been some pure questions that arose upon studying the part. The introduction to the chapter gives a high-level overview of how utilizing hyperopt and Bayesian optimization gives a extra guided method for tuning hyperparameters in comparison with grid search. Nonetheless, I used to be curious, what’s going on right here below the hood?

As well as, as is the case with many tutorials about tuning XGBoost hyperparameters, the ranges for the hyperparameters appeared considerably arbitrary. Harrison explains that he pulled the record of hyperparameters to be tuned from a chat that information scientist Bradley Boehmke gave (right here). Each Harrison and Boehmke present tutorials for utilizing hyperopt with the identical set of hyperparameters, though they use barely totally different search areas for locating an optimum mixture. In Boehmke’s case, his search house is way bigger; for instance, he recommends that the utmost depth for every tree (max_depth) be allowed to differ between 1 and 100. Harrison had narrowed the ranges he presents in his e-book considerably, however these two instances led to the query: What’s the marginal achieve in comparison with the marginal enhance in time from growing the hyperparameter search house when tuning XGBoost fashions?

The aim of this text is centered on these two questions. First, we are going to discover how hyperopt works when tuning hyperparameters at a barely deeper stage to assist achieve some instinct for what’s going on below the hood. Second, we are going to discover the tradeoff between massive search areas and narrower search areas in a rigorous means. I hope to reply these questions in order that this can be utilized as a useful resource for understanding hyperparameter tuning sooner or later.

All code for the challenge may be discovered on my GitHub web page right here: https://github.com/noahswan19/XGBoost-Hyperparameter-Evaluation

hyperopt with Tree-Structured Parzen Estimators for Hyperparameter Tuning

Within the chapter of his textbook masking hyperopt, Harrison describes the method of utilizing hyperopt for hyperparameter tuning as utilizing “Bayesian optimization” to establish sequential hyperparameter combos to attempt through the tuning course of.

The high-level description makes it clear why utilizing hyperopt is a superior technique to the grid search technique, however I used to be curious how that is applied. What is definitely happening once we run the fmin operate utilizing the Tree-Structured Parzen (TPE) estimator algorithm?

Sequential Mannequin-Based mostly Optimization

To start out with, the TPE algorithm originates from a paper written in 2011 by James Bergstra, Rémi Bardenet, Yoshua Bengio, and Balázs Kégl, the authors of the hyperopt bundle referred to as “Algorithms for Hyper-Parameter Optimization”. The paper begins by introducing Sequential Mannequin-Based mostly Optimization (SMBO) algorithms, the place the TPE algorithm is one model of a broader SMBO technique. SMBOs present a scientific means to decide on the following hyperparameters to judge, avoiding the brute-force nature of grid search and the inefficiency of random search. It entails creating a “surrogate” mannequin for the underlying mannequin we’re optimizing for (i.e. XGBoost in our case), which we will use direct the seek for optimum hyperparameters in a means that’s computationally cheaper than evaluating the underlying mannequin. The algorithm for an SMBO is described within the following picture:

Picture by writer from Determine 1 from “Algorithms for Hyper-Parameter Optimization” (Bergstra et al.)

There’s loads of symbols right here, so let’s break down every one:

  • x* and x: x* represents the hyperparameter mixture that’s being examined in a given trial, and x represents a normal hyperparameter mixture.
  • f: That is the “health operate” which is the underlying mannequin that we’re optimizing. Inside this algorithm, f(x*) is mapping a hyperparameter mixture x* to efficiency of this mix on a validation information set.
  • M_0: The M phrases within the algorithm correspond to the “surrogate” mannequin we’re utilizing to approximate f. Since f is often costly to run, we will use a less expensive estimation, M, to assist establish which hyperparameter combos will probably enhance efficiency.
  • H: The curly H corresponds to the historical past of hyperparameters searched to date. It’s up to date upon each iteration. Additionally it is used to develop an up to date surrogate mannequin after every iteration.
  • T: This corresponds to the variety of trials we use for hyperparameter tuning. That is fairly self-explanatory, however this corresponds to the max_evals argument within the fmin operate from hyperopt.
  • S: The S corresponds to the criterion used to choose a set of hyperparameter combos to test given a surrogate mannequin. Within the hyperopt implementation of the TPE algorithm, S corresponds to the Anticipated Enchancment (EI) criterion, described within the following picture.
Picture by writer from Equation 1 of “Algorithms for Hyper-Parameter Optimization” (Bergstra et al.)

Every iteration, some variety of doable hyperparameter combos are drawn (within the python hyperopt bundle, that is set to 24 by default). We are going to focus on in a bit how TPE signifies how these 24 are drawn. These 24 hyperparameter combos are evaluated utilizing the EI criterion and surrogate mannequin (which is cheap) to establish the one mixture that’s almost definitely to have the best efficiency. That is the place we see the advantages of the surrogate mannequin: as an alternative of coaching and evaluating 24 XGBoost fashions to judge the one finest hyperparameter mixture, we will approximate this with a computationally cheap surrogate mannequin. Because the title would counsel, the formulation above corresponds to the anticipated efficiency enchancment of a hyperparameter mixture x:

  • max(y*-y,0): This represents the precise enchancment in efficiency for a hyperparameter mixture x. y* corresponds to the perfect validation loss we’ve attained up to now; we’re aiming to attenuate the validation loss, so we’re on the lookout for values of y which can be lower than y*. This implies we need to maximize EI in our algorithm.
  • p_M(x|y): That is the piece of the criterion that might be approximated utilizing the surrogate mannequin and the piece the place TPE will slot in. That is the chance density for doable values for y given a hyperparameter mixture x.

So every spherical, we take a set of 24 hyperparameter combos, then proceed with the one which maximizes the EI criterion, which makes use of our surrogate mannequin M.

The place does the TPE algorithm slot in

The important thing piece of the SMBO algorithm that may differ throughout implementations is the surrogate mannequin or how we approximate the success of hyperparameter capabilities. Utilizing the EI criterion, the surrogate mannequin is required to estimate the density operate p(y|x). The paper talked about above introduces one technique referred to as the Gaussian Course of Method which fashions p(y|x) straight, however the TPE method (which is extra typically used for XGBoost hyperparameter optimization) as an alternative approximates p(x|y) and p(y). This method follows from Bayes theorem:

Picture by writer

The TPE algorithm splits p(x|y) right into a piecewise mixture of two distributions:

  • l(x) if y < y*
  • g(x) if y ≥ y*

These two distributions have an intuitive understanding: l(x) refers back to the distribution of hyperparameters related to fashions which have a decrease loss (higher) than the perfect mannequin to date whereas g(x) refers back to the distribution of hyperparameters related to fashions which have a better loss (worse) than the perfect mannequin to date. This expression for p(y|x) is substituted into the equation for EI within the paper, and a mathematical derivation (that will be too verbose to interrupt down completely right here) arrives at the truth that maximizing EI is equal to choosing factors which can be extra probably below l(x) and fewer probably below g(x).

So how does this work in follow? When utilizing hyperopt, we use the fmin operate and provide the tpe.counsel algorithm to specify we need to use the TPE algorithm. We provide an area of hyperparameters the place every parameter is related to a uniform or log-uniform distribution. These preliminary distributions are used to initialize l(x) and g(x) and supply a previous distribution for l(x) and g(x) whereas working with a small variety of preliminary trials. By default (parameter n_startup_jobs in tpe.counsel), hyperopt runs 20 trials by randomly sampling hyperparameter combos from the distributions offered for the house parameter of fmin. For every of the 20 trials, an XGBoost mannequin is run and a validation loss obtained.

The 20 observations are then break up in order that two subsets are used to construct non-parametric densities for l(x) and g(x). Subsequent observations are used to replace these distributions. The densities are estimated utilizing a non-parametric technique (which I’m not certified to explain absolutely) involving the prior distributions for every hyperparameter (that we specified) and particular person distributions for every remark from the trial historical past. Observations are break up into subsets utilizing a technique that modifications with the variety of whole trials run; the “n” observations with the bottom loss are used for l(x) with the remaining observations used for g(x). The “n” is set by multiplying a parameter gamma (default for tpe.counsel is 0.25) by the sq. root of the variety of trials and rounding up; nevertheless, a most for “n” is ready at 25 so l(x) might be parameterized with at most 25 values. If we use the default setting for tpe.counsel, then the perfect two observations (0.25 * sqrt(20) = 1.12 rounds to 2) from the preliminary trials are used to parameterize l(x) with the remaining 18 used for g(x). The 0.25 worth refers back to the gamma parameter in tpe.counsel which may be modified if desired. Wanting again to the pseudocode for the SMBO algorithm and the formulation for EI, if n observations are used to parameterize l(x), then the (n+1)th remark is the edge worth y*.

As soon as l(x) and g(x) are instantiated utilizing the start trials, we will transfer ahead with every analysis of our goal operate for the variety of max_evals that we specify for fmin. For every iteration, a set of candidate hyperparameter combos (24 by default in tpe.counsel however may be specified with n_EI_candidates) is generated by taking random attracts from l(x). Every of those combos is evaluated utilizing the ratio l(x)/g(x); the mix that maximizes this ratio is chosen as the mix for use for the iteration. The ratio will increase for hyperparameters combos which can be both (1) prone to be related to low losses or (2) unlikely to be related to excessive losses (which drives exploration). This course of of selecting the perfect candidate corresponds to utilizing the surrogate mannequin with the EI as mentioned when wanting on the pseudocode for an SMBO.

An XGBoost mannequin is then skilled with the highest candidate for the iteration; a loss worth is obtained, and the information level (x*, f(x*)) is used to replace the surrogate mannequin (l(x) and g(x)) to proceed optimization.

Marginal Impact of Hyperparameter Tuning

So now, with a background on how the hyperopt library can be utilized within the hyperparameter tuning course of, we transfer to the query of how utilizing wider distributions impacts mannequin efficiency. When trying to match the efficiency of fashions skilled on massive search areas towards these skilled on narrower search areas, the rapid query is the best way to create the narrower search house. For instance, the presentation from Boehmke advises utilizing a uniform distribution from 1 to 100 for the max_depth hyperparameter. XGBoost fashions are inclined to generalize higher when combining a lot of weak learners, however does that imply we slim the distribution to a minimal of 1 and a most of fifty? We might have some kind of normal understanding from work others have performed to intuitively slim the house, however can we discover a approach to analytically slim the search house?

The answer proposed on this article entails operating a set of shorter hyperparameter tuning trials to slim the search house primarily based on shallow searches of a wider hyperparameter house. The broader search house we use comes from slide 20 of Boehmke’s aforementioned presentation (right here). As a substitute of operating hyperparameter tuning on a large search house for 1,000 rounds of hyperparameter testing, we’ll run 20 impartial trials with 25 rounds of hyperparameter testing every. We are going to slim the search house utilizing percentile values for every hyperparameter utilizing the trial outcomes. With the percentiles, we are going to run a ultimate seek for 200 rounds utilizing the narrower hyperparameter search house, the place the distribution we offer for every hyperparameter is given a most and minimal from the percentile values we see within the trials.

For instance, say we run our 20 trials and get 20 optimum values for max_depth utilizing the shallow search. We select to slim the search house for max_depth from the uniform distribution from 1 to 100 to the uniform distribution from the tenth percentile worth for max_depth from our trials to the ninetieth percentile worth for max_depth. We are going to run a few totally different fashions altering up the percentiles we use to match aggressive narrowing methods.

Fashions produced utilizing the trial-based technique require 700 evaluations of hyperparameter combos (500 from the trials and 200 from the ultimate analysis). We are going to examine the efficiency of those fashions towards one tuned for 1,000 hyperparameter evaluations on the broader house and one tuned for 700 hyperparameter evaluations on the broader house. We’re curious as as to if this technique of narrowing the hyperparameter search house will result in quicker convergence towards the optimum hyperparameter mixture or if this narrowing negatively impacts outcomes.

We check this technique on a activity from a previous challenge involving simulated tennis match outcomes (extra info within the article I wrote right here). A part of the challenge concerned constructing post-match win chance fashions utilizing high-level details about every match and statistics for a given participant within the match that adopted a truncated regular distribution; that is the duty used to check the hyperparameter tuning technique right here. Extra details about the particular activity may be discovered within the article and within the code linked firstly of the article. At a excessive stage, we are attempting to take details about what occurred within the match to foretell a binary win/loss for the match; one might use a post-match win chance mannequin to establish any gamers that could be overperforming their statistical efficiency, who may be candidates for regression. To coach every XGBoost mannequin, we use log loss/cross-entropy loss because the loss operate. The info for the duty comes from Jeff Sackmann’s GitHub web page right here: https://github.com/JeffSackmann/tennis_atp. Anybody excited about tennis or tennis information ought to take a look at his GitHub and glorious web site, tennisabstract.com.

For this activity and our technique, we now have six fashions, two skilled on the complete search house and 4 skilled on a narrower house. These are titled as follows within the charts:

  • “Full Search”: That is the mannequin skilled for 1000 hyperparameter evaluations throughout the complete hyperparameter search house.
  • “XX-XX Percentile”: These fashions are these skilled on a narrower search house for 200 evaluations after the five hundred rounds of trial evaluations on the complete hyperparameter search house. The “10–90 Percentile” mannequin for instance trains on a hyperparameter search house the place the distribution for every hyperparameter is set by the tenth percentile and ninetieth percentile values from the 20 trials.
  • “Shorter Search”: That is the mannequin skilled for 700 hyperparameter evaluations throughout the complete hyperparameter search house. We use this to match the efficiency of the trial technique towards the broader search house when allotting the identical variety of hyperparameter evaluations to each strategies.

A log of coaching the fashions is included on the GitHub web page linked on the prime of the article which incorporates the hyperparameters discovered at every step of the method given the random seeds used together with the time it took to run every mannequin on my laptop computer. It additionally gives the outcomes of the 20 trials run so to grasp how every narrowed search house could be parameterized. These instances are listed beneath:

  • Full Search: ~6000 seconds
  • 10–90 Percentile: ~4300 seconds (~3000 seconds for trials, ~1300 for narrower search)
  • 20–80 Percentile: ~3800 seconds (~3000 seconds for trials, ~800 for narrower search)
  • 30–70 Percentile: ~3650 seconds (~3000 seconds for trials, ~650 for narrower search)
  • 40–60 Percentile: ~3600 seconds (~3000 seconds for trials, ~600 for narrower search)
  • Shorter Search: ~4600 seconds

The timing doesn’t scale 1:1 with the variety of whole evaluations use; the trial technique fashions are inclined to take much less time to coach given the identical variety of evaluations, with narrower searches taking even much less time. The subsequent query is whether or not this time-saving impacts mannequin efficiency in any respect. We’ll start by validation log loss throughout the fashions.

Picture by writer

Little or no distinguishes the log losses throughout the fashions, however we’ll zoom in a bit bit to get a visible take a look at the variations. We current the complete vary y-axis first to contextualize the minor variations within the log losses.

Picture by writer

Okay so doing higher, however we’ll zoom in yet another time to see the pattern most clearly.

Picture by writer

We discover that the 20–80 Percentile mannequin attains the perfect validation log loss, barely higher than the Full Search and Shorter Search strategies. The opposite percentile fashions all carry out barely worse than the broader search fashions, however the variations are minor throughout the board. We are going to look now on the variations in accuracy between the fashions.

Picture by writer

As with the log losses, we see very minor variations and select to zoom in to see a extra definitive pattern.

Picture by writer

The Full Search mannequin attains the perfect accuracy of any mannequin, however the 10–90 Percentile and 20–80 Percentile each beat out the Shorter Search mannequin over the identical variety of evaluations. That is the form of tradeoff I hoped to establish with the caveat that that is task-specific and on a really small scale.

The outcomes utilizing log loss and accuracy counsel the opportunity of a doable efficiency-performance commerce off when selecting how broad to make the XGBoost hyperparameter search house. We discovered that fashions skilled on a narrower search house can outperform or examine to fashions skilled on wider search areas whereas taking much less time to coach general.

Additional Work

The code offered within the prior part ought to present modularity to run this check towards totally different duties with out issue; the outcomes for this classification activity might differ from these of others. Altering the variety of evaluations run when exploring the hyperparameter search house or the variety of trials run to get percentile ranges might present different conclusions from these discovered right here. This work additionally assumed the set of hyperparameters to tune; one other query I’d be excited about exploring could be the marginal impact of together with extra hyperparameters to tune (i.e., colsample_bylevel) on the efficiency of an XGBoost mannequin.

References

(used with permission)

[2] M. Harrison, Efficient XGBoost (2023), MetaSnake

[3] B. Boehmke, “Superior XGBoost Hyperparameter Tuning on Databricks” (2021), GitHub

[4] J. Bergstra, R. Bardenet, Y. Bengio, B. Kégl, “Algorithms for Hyper-Parameter Optimization” (2011), NeurIPS 2011