Ensemble methods (voting, stacking, blending)
2.6.16· AI-ML › Model Evaluation & Selection
Ensembles Kyon Kaam Karte Hain: Mathematical Foundation
Bias-Variance Perspective
KYUN ensembles error reduce karte hain? Prediction error decomposition consider karo:
KYA matlab hai har term ka:
- Bias: Wrong assumptions se systematic error (underfitting)
- Variance: Training data fluctuations ke liye sensitivity (overfitting)
- Irreducible: Data mein khud ka noise
KAISE ensembles help karte hain:
- Averaging variance reduce karta hai: Agar models independent errors karte hain, to averaging randomness cancel kar deta hai
- Diversity bias reduce karti hai: Alag-alag model types alag-alag patterns capture karte hain
- Ensemble mein har model simpler ho sakta hai: Har weak learner specialize kar sakta hai
Scratch se derivation:
Maano har model prediction karta hai error ke saath jahan aur errors uncorrelated hain.
Ensemble prediction:
Ensemble error:
Ensemble ka variance:
Yeh step kyun? Variance independent sums mein linear hota hai.
Yeh step kyun? Jab errors independent hon, .
Yeh dikhata hai ki variance ensemble size ke saath decrease hota hai—lekin sirf tab jab errors independent hon!
Method 1: Voting Classifiers
Hard Voting
YEH KYA KARTA HAI: Har classifier ek class label output karta hai. Ensemble sabse zyada baar aane wali class predict karta hai.
classifiers jo class labels predict karte hain, unke liye:
| Logistic Reg | Decision Tree | SVM | Hard Vote | |
|---|---|---|---|---|
| 1 | Spam | Spam | Not Spam | Spam (2/3) |
| 2 | Not Spam | Not Spam | Not Spam | Not Spam (3/3) |
| 3 | Spam | Not Spam | Spam | Spam (2/3) |
Yeh kyon kaam karta hai: Agar har classifier random se better hai (accuracy > 50%), to majority ke galat hone ki probability ensemble size ke saath exponentially decrease hoti hai.
Mathematical intuition: 3 models ke saath, har ek 70% accurate (independent errors):
- Probability ki teeno galat hain: (2.7%)
- Probability ki kam se kam 2 galat hain: (21.6%)
- Ensemble accuracy ≈ 78.4% (jab kam se kam 2 sahi hon)
Soft Voting
YEH KYA KARTA HAI: Har classifier se predicted probabilities ka average nikalo, phir sabse zyada average probability wali class choose karo.
jahan woh probability hai jo model class ko assign karta hai.
| Logistic Reg P(Spam) | Tree P(Spam) | SVM P(Spam) | Avg P(Spam) | Prediction | |
|---|---|---|---|---|---|
| 1 | 0.51 | 0.55 | 0.49 | 0.517 | Spam |
| 2 | 0.30 | 0.35 | 0.40 | 0.350 | Not Spam |
| 3 | 0.90 | 0.45 | 0.70 | 0.683 | Spam |
Soft voting aksar kyun jeetta hai: Yeh richer information (confidence levels) use karta hai, na ki sirf binary decisions. Ek highly confident sahi prediction kam confident galat predictions ko override kar sakti hai.
Kab kaunsa use karo:
- Hard voting: Jab models probabilities output nahi karte (e.g., SVM bina probability calibration ke)
- Soft voting: Jab models well-calibrated probabilities output karte hain—typically 1-2% better accuracy deta hai
Yeh galat kyun hai: Sabhi models equally reliable nahi hote! Ek 95% accurate model ko 60% accurate model se zyada weight milna chahiye.
Fix: Weighted voting use karo: jahan model ka weight hai (aksar validation accuracy ya inverse log-loss se set hota hai).
Method 2: Stacking (Stacked Generalization)
Stacking Architecture
KAISE KAAM KARTA HAI (2-layer approach):
Layer 1 (Base Models):
- Training data par diverse models train karo:
- Validation/out-of-fold data par predictions generate karo
Layer 2 (Meta-Model):
- Base model predictions ko features ke roop mein use karo
- Ek meta-learner train karo (aksar Logistic Regression, Ridge, ya Gradient Boosting)
- Meta-model seekhta hai: "Mujhe model 1 par kab bharosa karna chahiye vs model 2 par?"
-
Base predictions:
-
Meta-features: (kabhi kabhi original features bhi include hote hain)
-
Final prediction: jahan meta-model hai
Yeh step kyun? Meta-model context-dependent weighting seekhta hai—yeh seekh sakta hai ki "high-dimensional data ke liye model 1 par bharosa karo, sparse data ke liye model 2 par."
Stacking mein Data Leakage Rokna
Yeh BAHUT galat kyun hai: Data leakage! Agar base models wahi data dekhte hain jis par meta-model train hota hai, to meta-model base models ke training-set biases par overfit karna seekhta hai, na ki unki true generalization ability par.
Fix: K-fold cross-validation ke zariye out-of-fold predictions use karo:
STEP-BY-STEP (5-fold example):
- Training data ko 5 folds mein split karo
- Fold ke liye:
- Har base model ko folds par train karo
- Fold par predict karo (yeh predictions base models ke liye "unseen" hain)
- Saare out-of-fold predictions concatenate karo → meta-model ke liye training data
- Final test predictions ke liye base models ko saare training data par retrain karo
Training (10,000 ghar par):
Fold 1 (2000 ghar):
- LinearReg ko folds 2-5 par train karo → fold 1 predict karo
- RF ko folds 2-5 par train karo → fold 1 predict karo
- GB ko folds 2-5 par train karo → fold 1 predict karo
Folds 2-5 ke liye repeat karo...
Meta-training data (10,000 rows):
house_id | LinearReg_pred | RF_pred | GB_pred | actual_price
------|-------------
1 | 250k | 270k | 265k | 260k
2 | 180k | 175k | 182k | 178k
...
Meta-model (Ridge Regression) seekhta hai:
Yeh weights kyun? Meta-model ne discover kiya ki RF validation par thoda better perform karta hai—ise 40% weight milta hai.
Test time par:
- Saare base models ko full 10,000 ghar par retrain karo
- Naye ghar ke liye: 3 predictions lo, meta-model ko do
- Meta-model final price output karta hai
Typical improvement: Stacking aksar best single model se 2-5% error reduction deta hai.
Method 3: Blending
Blending vs Stacking
| Aspect | Stacking | Blending | |--------|----------| | Meta-training data | Out-of-fold predictions (saara training data use hota hai) | Hold-out set predictions (typically data ka 20-30%) | | Base model training | Har fold ke liye K baar | Training set par ek baar | | Computational cost | Zyada (K × M model trainings) | Kam (M model trainings) | | Data efficiency | Better (meta-training ke liye saara data use hota hai) | Worse (hold-out base models ke liye use nahi hota) |
KAISE kaam karta hai blending:
- Data split karo: 70% train, 30% hold-out
- Base models ko 70% train par train karo
- 30% hold-out par predictions generate karo
- Hold-out predictions par meta-model train karo
- Test ke liye: base models → meta-model
Split:
- Training set: 35,000 images (70%)
- Hold-out (blending set): 15,000 images (30%)
Base models 35k par train kiye:
- ResNet-50 (validation acc: 92%)
- EfficientNet (validation acc: 93%)
- Vision Transformer (validation acc: 91%)
Blending set predictions (15k images):
# Har row ek image hai, columns har class ke liye model probabilities hain
blend_features = np.column_stack([
resnet_preds, # (15000, 10) for 10 classes
efficientnet_preds,
vit_preds
]) # Shape: (15000, 30)
# Meta-model: Logistic Regression
meta_model.fit(blend_features, blend_labels)Kaggle ke liye blending kyun? Competitions mein strict time limits hote hain—blending full stacking se faster iterate karna deta hai.
Trade-off: Base models ke liye 15k training images lost ho gayin, lekin meta-model achha combination seekh leta hai.
Methods mein se Kaise Choose Karo
Voting tab use karo jab:
- Tum simplicity aur interpretability chahte ho
- Tumhare paas 3-10 diverse models hain
- Models ka performance similar hai (2-3% accuracy ke andar)
- Tumhare paas zyada validation data nahi hai
Stacking tab use karo jab:
- Tum maximum performance chahte ho
- Tumhare paas enough data hai (10k+ samples)
- Tum 5-10× training time afford kar sako
- Base models ki alag-alag data subsets par varying strengths hain
Blending tab use karo jab:
- Stacking bahut expensive ho
- Tumhare paas natural validation split ho (e.g., time-series: old data par train karo, recent par blend karo)
- Quick iteration chahiye (competitions, prototyping)
Diversity Hai Key
Derivation insight:
- Jab (independent): tak reduce hota hai (perfect scaling)
- Jab (identical models): (koi benefit nahi!)
PRACTICAL implication: Diversity, individual accuracy se zyada matter karti hai! Ek 90% accurate model jo alag galtiyan karta hai woh ek 92% model se zyada valuable hai jo baaki models jaise hi galtiyan karta ho.
KAISE diversity ensure karo:
- Alag algorithms: Linear, tree-based, neural networks combine karo
- Alag features: Alag feature subsets par train karo
- Alag training data: Bagging, bootstrapping, alag time windows
- Alag hyperparameters: Depth, regularization, learning rate vary karo
Diverse ensemble:
-
Logistic Regression on transaction features (amount, location)
- Strength: Fast, interpretable, obvious patterns ke liye achha
- Weakness: Complex interactions miss kar leta hai
-
Random Forest on engineered features (rolling statistics, velocity)
- Strength: Non-linear patterns capture karta hai, outliers ke liye robust
- Weakness: Rare fraud patterns par overfit kar sakta hai
-
Neural Network on raw transaction sequences
- Strength: Temporal patterns seekhta hai
- Weakness: Bahut data chahiye, black-box hai
Stacked meta-model (Logistic Regression) seekhta hai:
- High-amount foreign transactions ke liye LR par bharosa karo (clear signal)
- Unusual timing wale moderate-amount domestic ke liye RF par bharosa karo
- Low-amount lekin suspicious sequence patterns ke liye NN par bharosa karo
Result: Ensemble best single model (RF) se 15% zyada fraud pakad leta hai, saath mein low false positive rate bhi maintain karta hai.
Implementation Considerations
Computational Cost
Training time stacking ke liye, base models, folds, dataset size ke saath:
jahan model ke liye training time hai.
Yeh step kyun? Har fold data par train hota hai, har model ke liye baar repeat hota hai.
Typically: 5 models ke saath 5-fold stacking = 25× base training time + meta-training.
Yeh galat kyun ho sakta hai: Meta-level par overfitting! Agar:
- Base models bahut similar hain (low diversity)
- Validation set bahut chhota hai (meta-model overfit karta hai)
- Base models pehle se hi overfit kar rahe hain
Fix:
- Base model diversity ensure karo (alag algorithms, features)
- Regularized meta-models use karo (Ridge, Lasso, small trees)
- Meta-model validation performance alag se monitor karo
- Kabhi kabhi small datasets par simple voting complex stacking se better hota hai
Hyperparameter Tuning
Sawaal: Kya base models ko ensemble construction se pehle ya baad mein tune karna chahiye?
Jawaab: Pehle, lekin ek caveat ke saath:
- Har base model ko independently tune karo individual performance maximize karne ke liye
- Phir predictions ke beech correlation check karo—agar do models almost identical predictions dete hain, to ek drop kar do
- Diverse, well-tuned models ke saath ensemble banao
- Optionally: meta-model hyperparameters tune karo (regularization strength)
Kab Kaunsa Meta-Model Use Karo
| Meta-Model | Best For | Kyun |
|---|---|---|
| Logistic/Ridge Regression | Sabse common choice | Linear, regularized, interpretable weights |
| Gradient Boosting | Complex patterns | Non-linear combinations seekhta hai |
| Neural Network | Bahut saare base models (>20) | Complex interactions seekh sakta hai |
| Simple Average | Similar base models | Meta-overfitting se bachata hai |
Diversity = "Don't Invite Very Educated Robots Simultaneously Into Teams Yielding (similar predictions)"
Recall Ek 12 saal ke bachhe ko explain karo
Socho tum guess karne ki koshish kar rahe ho ki ek jar mein kitni candies hain. Sirf khud guess karne ki jagah, tum apne teen doston se puchte ho:
- Dost 1 volumes estimate karne mein bahut achha hai
- Dost 2 numbers aur math mein great hai
- Dost 3 ko candy jars ka bahut experience hai
Ab, tum unke guesses kaise combine karte ho?
Voting aisa hai jaise: sabhi apna guess likhte hain, aur tum beech wala pick karte ho (ya jo sabse common ho agar sab alag guess karein).
Stacking aisa hai jaise: tum dekhte ho ki kaunsa dost alag-alag situations mein usually sahi hota hai. Shayad Dost 1 tab better hota hai jab jar round ho, Dost 2 tab better hota hai jab square ho, aur Dost 3 chhote jars ke liye best hai. Tum ek pattern seekhte ho: "Jab jar round ho, Dost 1 par zyada bharosa karo." Yahi meta-model karta hai!
Blending ek simpler version hai: tum unhe pehle ek practice jar dete ho, dekhte ho har dost kitna close aata hai, phir ek formula banate ho jaise "50% Dost 1 ka guess + 30% Dost 2 ka + 20% Dost 3 ka" based on ki practice mein kaun best tha.
Magic yeh hai ki: bhale hi har dost kabhi kabhi galat ho, jab tum unhe smartly combine karte ho, group guess usually kisi bhi single guess se zyada close hota hai! Kyunki woh alag-alag types ki galtiyan karte hain, aur averaging errors cancel kar deta hai.
Connections
- 2.6.1-Train-test-split: Blending ke liye validation sets banane ka foundation
- 2.6.12-Cross-validation: Stacking mein out-of-fold predictions ke liye use hota hai
- 2.6.8-Bias-variance-tradeoff: Theoretical foundation ki ensembles error kyun reduce karte hain
- 2.7.1-Bagging-(Bootstrap-Aggregating): Bootstrapped data ke saath voting ka special case
- 2.7.2-Random-Forest: Bagging use karte hue decision trees ka ensemble
- 2.7.3-Boosting-methods: Sequential ensembles (parallel voting/stacking se alag)
- 2.8.5-Regularization: Meta-models ke liye overfitting rokne hetu important
- 2.5.6-Feature-engineering: Alag feature sets diverse base models banate hain
#flashcards/ai-ml
Ensemble learning ka key principle kya hai? :: Kai diverse models ki predictions combine karna taaki kisi bhi single model se better performance mile, kyunki alag-alag models alag-alag types ki galtiyan karte hain jo aggregate karne par cancel ho jaati hain.