11. Ensemble metody: rozdíl mezi základními metodami (např. Bagging, Boosting). (NI-ADM)¶
Ensemble metody¶
- Definice: Techniky kombinující více modelů (base learners) pro lepší přesnost a stabilitu predikcí.
- Cíl: Snížit chyby (bias a variance) a zlepšit generalizaci.
- Princip: "Moudrost davu" – kombinace různých pohledů na data vede k robustnějšímu rozhodování.
- Hlavní typy:
- Bagging: Snižuje varianci (např. Random Forest).
- Boosting: Snižuje bias (např. AdaBoost, Gradient Boosting).
- Stacking: Kombinace různých modelů pomocí meta-modelu.
Bagging (Bootstrap Aggregating)¶
Bagging (Bootstrap Aggregating) je ensemble metoda, která kombinuje predikce více nezávisle trénovaných modelů na náhodných podmnožinách dat. Cílem je snížit varianci a přeučení.
Algoritmus¶
- Bootstrapové vzorkování:
- Vytvoří se několik náhodných podmnožin (bootstrapových vzorků) z trénovacích dat s opakováním.
- Každý vzorek má stejnou velikost jako původní dataset, ale některé příklady se opakují, jiné chybí.
- Trénink základních modelů:
- Na každém bootstrapovém vzorku se natrénuje stejný typ modelu (např. rozhodovací strom).
- Modely jsou trénovány nezávisle na sobě (lze paralelizovat).
- Agregace výsledků:
- Klasifikace: Většinové hlasování (majority voting) – třída s nejvíce hlasy vyhrává.
- Regrese: Průměrování predikcí všech modelů.
Random Forest¶
- Popis: Baggingový algoritmus používající hluboké rozhodovací stromy.
- Klíčové vlastnosti:
- Náhodný výběr příznaků: Při každém rozdělení uzlu stromu se uvažuje pouze náhodná podmnožina příznaků.
- Redukce korelace mezi stromy: Kombinací bootstrappingu a náhodných příznaků.
- Hyperparametry:
- Počet stromů (čím více, tím stabilnější, ale náročnější).
- Velikost bootstrapové podmnožiny.
- Počet příznaků uvažovaných při rozdělení uzlu.
Výhody¶
- Snižuje varianci a přeučení.
- Odolný vůči šumu v datech.
- Jednoduchá interpretace výsledků (průměr/většina).
Nevýhody¶
- Neřeší systematické chyby (bias).
- Vyšší výpočetní náročnost pro velké datasety.
Boosting¶
Boosting je ensemble metoda, která kombinuje slabé modely (weak learners - o něco lepší než náhoda) do silného modelu. Modely se trénují sekvenčně, přičemž každý další opravuje chyby předchůdců. Cílem je snížit bias a zlepšit přesnost.
AdaBoost (Adaptive Boosting)¶
- Popis: Algoritmus kombinující slabé klasifikátory (weak learner) (např. decision stumps).
- Decision Stump: Jednoduchý model s jedním rozhodovacím uzlem a dvěma listy (např. "Pokud X > 5, pak třída A, jinak B").
Algoritmus AdaBoost¶
- Inicializace vah: Všechny příklady mají stejnou váhu.
- Trénink slabého klasifikátoru: Vybere se klasifikátor s nejnižší chybou.
- Výpočet důležitosti klasifikátoru:
-
\alpha = \frac{1}{2} \ln\left(\frac{1 - \text{error}}{\text{error}}\right)
- Čím nižší chyba, tím vyšší váha klasifikátoru.
-
- Aktualizace vah příkladů:
- Zvýšení vah chybně klasifikovaných příkladů.
- Snížení vah správně klasifikovaných příkladů.
- Opakování: Kroky 2–4 se opakují pro předem daný počet iterací.
- Finální predikce: Vážený součet predikcí všech klasifikátorů.
Výhody¶
- Snižuje bias a zlepšuje přesnost u komplexních úloh.
- Efektivní pro datasety s nerovnováhou tříd.
- Adaptuje se na "obtížné" příklady.
Nevýhody¶
- Náchylný k přeučení (hlavně u šumivých dat).
- Delší tréninkový čas (sekvenční povaha).
Stacking¶
- Princip: Kombinace různých typů modelů (např. SVM, neuronové sítě) pomocí meta-modelu, který se učí optimální kombinaci jejich výstupů.
- Kroky:
- Trénink základních modelů na trénovacích datech.
- Generování predikcí základních modelů na validačních datech.
- Trénink meta-modelu na těchto predikcích.
- Příklad: Meta-modelem může být logistická regrese nebo rozhodovací strom.
Srovnání¶
| Kritérium | Bagging | Boosting |
|---|---|---|
| Typ problémů | Vysoká variance (přeučené modely) | Vysoký bias (podučené modely) |
| Tréninkový režim | Paralelní | Sekvenční |
| Váhy příkladů | Všechny příklady mají stejnou váhu | Chybné příklady získávají vyšší váhu |
| Příklady algoritmů | Random Forest | AdaBoost, Gradient Boosting, XGBoost |
| Rychlost tréninku | Rychlý (paralelní výpočty) | Pomalejší (sekvenční) |
| Overfitting | Méně náchylný | Více náchylný (nutná regulace) |
Kdy použít kterou metodu?¶
- Bagging:
- Pro komplexní modely s vysokou variancí (hluboké stromy).
- Velké datasety s potenciálem šumu (např. detekce podvodů).
- Boosting:
- Pro jednoduché modely s vysokým biasem (např. rozhodovací pahýly).
- Nerovnováha tříd nebo komplexní rozhodovací hranice (např. lékařská diagnostika).