AdaBoost
Sequentially reweighting misclassified samples to convert weak decision stumps into strong classifiers.
What is AdaBoost?
Adaptive Boosting (AdaBoost - Yoav Freund & Robert Schapire, 1997 - Gödel Prize) was the first practical boosting algorithm.
Instead of building complex deep trees, AdaBoost builds a sequence of very simple weak learners called Decision Stumps (a decision tree with a depth of 1, making a single binary split).
A single decision stump performs only slightly better than random guessing (e.g. 55% accuracy).
AdaBoost combines hundreds of decision stumps into a strong ensemble classifier by sequentially re-weighting misclassified data samples.
Sample Weights Initialized Equal (1 / N)
│
▼
[ Train Decision Stump 1 ] ──► Compute Error rate err_1 ──► Compute Voting Weight alpha_1
│
▼
INCREASE sample weights for MISCLASSIFIED instances!
│
▼
[ Train Decision Stump 2 ] ──► Focuses heavily on reweighted hard samples!
│
▼
Repeat for M steps ──► Final Output = sign( sum( alpha_m * h_m(x) ) )
Step-by-Step Algorithm Walkthrough
For binary classification targets on samples:
Step 1: Initialize Sample Weights
Set equal starting weight for every sample:
Step 2: Sequential Training Loop (for )
- Fit a Decision Stump using current sample weights .
- Calculate weighted classification error:
- Calculate voting weight for Stump :
- If error rate is low is large (high voting power!).
- If error rate is near 0.5 (zero voting power).
- Update sample weights for the next round:
- If sample was misclassified () is multiplied by (Weight increases!).
- If sample was correctly classified is multiplied by (Weight decreases!).
- Normalize weights so .
Step 3: Final Ensemble Prediction
Sensitivity to Outliers
Because AdaBoost increases sample weights exponentially for misclassified samples at every step, noisy outliers get massive weight multipliers.
Subsequent stumps become obsessed with fitting 1 or 2 corrupt outlier data points, leading to severe overfitting.
Modern systems use Gradient Boosting (XGBoost) instead, which uses smooth loss gradients rather than exponential weight multipliers.
Say this out loud
AdaBoost fits a sequence of weak decision stumps, increasing sample weights for misclassified instances at each step so subsequent stumps focus on hard errors. Final predictions are computed using a weighted majority vote where accurate stumps receive higher voting weights alpha. AdaBoost is sensitive to noisy outliers due to exponential sample reweighting.
Followups to expect
- Why is AdaBoost called Adaptive? Because subsequent weak learners adapt their training focus dynamically based on sample misclassification errors from previous rounds.
- Can AdaBoost handle multi class classification? Yes, SAMME (Stagewise Additive Modeling using a Multi-class Exponential loss function) extends AdaBoost to classes by adjusting voting weight .
Check yourself
How does AdaBoost modify sample weights w_i after a weak classifier evaluates training data?