Skip to content

AdaBoost

AdaBoost — Adaptive Boosting — was the first practical boosting algorithm and the conceptual breakthrough that "weak learners can be combined into a strong learner". It paved the way for gradient boosting and the entire family of sequentially-trained ensembles. Despite its 1995 vintage, it remains one of the cleanest illustrations of how reweighting hard examples produces strong classifiers.

The algorithm

Given training data {(xi,yi)} with yi{1,+1}, AdaBoost (Freund & Schapire, 1995) trains T weak classifiers sequentially:

Initialise weights wi(1)=1/N for all i. For t=1,,T:

  1. Fit weak classifier ht to weighted training set, minimising weighted error ϵt=iwi(t)1[ht(xi)yi].
  2. Compute classifier weight αt=12log((1ϵt)/ϵt).
  3. Update sample weights: wi(t+1)wi(t)exp(αtyiht(xi)).

The final classifier is

H(x)=sign(t=1Tαtht(x)).

Misclassified examples have their weights increased; correctly-classified examples have them decreased. The next weak learner is forced to focus on the points its predecessors got wrong.

The weak learner

The canonical weak learner is a decision stump — a one-split tree. A stump per feature is the simplest possible classifier; AdaBoost combines hundreds of stumps to produce a strong classifier. This is the surprising part: linear combinations of stumps cover a much richer hypothesis class than any one stump, and AdaBoost finds an efficient combination.

The weak learner condition: each ht must achieve ϵt<1/2 on its weighted training set — better than random. This is a much weaker requirement than what a "good" classifier must do. Schapire's 1990 result that the existence of any weak learner implies the existence of a strong learner is one of the foundational results of computational learning theory.

Margin theory

AdaBoost dramatically reduces training error — exponentially fast, in fact:

R^(H)t=1T2ϵt(1ϵt),

which is exp(2tγt2) for γt=1/2ϵt.

Yet test error often keeps decreasing even after training error reaches zero. Schapire et al.'s margin-based explanation (1998): AdaBoost continues to enlarge the classification margin of training examples even past zero training error, and large margins generalise. This was an early hint at the implicit regularisation that over-parameterised deep networks later exhibited.

Exponential loss

AdaBoost is equivalent to greedy minimisation of the exponential loss:

L(H)=iexp(yiH(xi)).

In each round, the algorithm picks the ht that most reduces this loss in a coordinate-descent step. This is the connection to gradient boosting, which generalises to arbitrary differentiable losses.

Strengths and weaknesses

Strengths:

  • Few hyperparameters — number of rounds T is essentially the only knob.
  • Strong margin guarantees — performs well even past zero training error.
  • Provable — clean PAC-style learning bounds.

Weaknesses:

  • Sensitive to label noise — exponential loss heavily penalises misclassified points; a mislabelled outlier gets reweighted to dominate the training distribution. Real-world noisy data hurts AdaBoost more than random forests.
  • Sequential — cannot be parallelised across rounds (unlike bagging).
  • Mostly displaced by gradient boosting — XGBoost / LightGBM use the same sequential idea with smarter losses (logistic, squared) and tree structure.

Legacy

AdaBoost is rarely the right modern choice but is the conceptual ancestor of every modern boosting algorithm. Reading the 1995 paper alongside an XGBoost tutorial makes the lineage clean: same sequential structure, same focus-on-residual mechanic, but generalised loss and tree-specific optimisations.

Released under the MIT License. Content imported and adapted from NoteNextra.