Skip to content

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

  1. 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í.
  2. 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).
  3. 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

  1. Inicializace vah: Všechny příklady mají stejnou váhu.
  2. Trénink slabého klasifikátoru: Vybere se klasifikátor s nejnižší chybou.
  3. 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.
  4. Aktualizace vah příkladů:
    • Zvýšení vah chybně klasifikovaných příkladů.
    • Snížení vah správně klasifikovaných příkladů.
  5. Opakování: Kroky 2–4 se opakují pro předem daný počet iterací.
  6. 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:
    1. Trénink základních modelů na trénovacích datech.
    2. Generování predikcí základních modelů na validačních datech.
    3. 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).