Home Knowledge Base AdaBoost (Adaptive Boosting)

AdaBoost (Adaptive Boosting) is the original boosting algorithm that combines many "weak learners" (typically decision stumps — single-split trees) into a powerful ensemble — by iteratively reweighting training examples so that misclassified examples receive higher weights in each round, forcing subsequent weak learners to focus on the hard cases, and combining their predictions with weights proportional to each learner's accuracy, proving for the first time that many weak models can be systematically combined into a strong one.

What Is AdaBoost?

How AdaBoost Works

StepProcessEffect
1. Initialize weightsAll examples get equal weight: $w_i = 1/N$Every example equally important
2. Train weak learner $h_1$Decision stump on weighted dataGets ~60% right, ~40% wrong
3. Compute learner weight $alpha_1$$alpha = frac{1}{2}lnfrac{1-varepsilon}{varepsilon}$ (ε = error rate)Better learners get higher α
4. Update example weightsMisclassified examples: weight ↑Hard examples become more important
Correctly classified: weight ↓Easy examples become less important
5. Train weak learner $h_2$On reweighted dataFocuses on previously hard examples
6. Repeat T roundsBuild ensemble of T weak learnersProgressive improvement
7. Final prediction$H(x) = ext{sign}left(sum_{t=1}^{T} alpha_t h_t(x) ight)$Weighted vote of all learners

Example: Three Rounds

RoundWhat Weak Learner Focuses OnError RateLearner Weight (α)
1All examples equally0.300.42
2The 30% that Round 1 got wrong0.250.55
3The remaining hard cases0.200.69

AdaBoost vs Gradient Boosting

FeatureAdaBoostGradient Boosting (GBM/XGBoost)
Error correctionReweight misclassified examplesFit to residual errors (gradients)
Loss functionExponential lossAny differentiable loss
Weak learnerDecision stumpsShallow decision trees (depth 3-8)
Outlier sensitivityHigh ⚠️ (exponential loss amplifies outlier weights)Lower (can use robust loss functions)
Modern usageLimited (mostly educational/simple tasks)Dominant (XGBoost, LightGBM, CatBoost)
RegularizationLimitedL1/L2, subsampling, learning rate

Python Implementation

from sklearn.ensemble import AdaBoostClassifier
from sklearn.tree import DecisionTreeClassifier

ada = AdaBoostClassifier(
    estimator=DecisionTreeClassifier(max_depth=1),  # Stumps
    n_estimators=50,
    learning_rate=1.0,
    random_state=42
)
ada.fit(X_train, y_train)

AdaBoost is the pioneering boosting algorithm that proved weak learners can be combined into strong learners — introducing the principle of adaptive reweighting that forces sequential classifiers to focus on hard examples, laying the theoretical and practical foundation for the modern gradient boosting family (XGBoost, LightGBM, CatBoost) that now dominates structured data tasks in both competitions and production.

adaboostadaptiveweight

Explore 500+ Semiconductor & AI Topics

From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.