Bagging, zkráceně z anglického bootstrap aggregating, je metoda strojového učení, která nestaví na jednom jediném modelu, ale na větším počtu modelů vytvořených nad různými verzemi stejného datasetu. Jejím cílem není udělat z průměrného modelu zázrak, ale zklidnit výsledek tam, kde je základní model příliš citlivý na konkrétní trénovací data. Právě proto se bagging nejčastěji spojuje s modely, které mají sklon kolísat – typicky s rozhodovacími stromy.
Na první pohled může bagging působit jako technika, která jen „několikrát zopakuje totéž“. Ve skutečnosti je jeho síla právě v tom, že každý model dostane trochu jiný pohled na stejný problém. Tyto dílčí pohledy se potom spojí do jednoho výsledku, který bývá stabilnější a odolnější než výstup jediného modelu.
Co přesně bagging dělá
Bagging stojí na jednoduché, ale velmi účinné myšlence.
Místo jednoho modelu vznikne více modelů stejného typu. Každý z nich se učí na trochu jiné trénovací sadě, která vznikne náhodným výběrem z původních dat. Nejde ale o úplně nové datasety. Jde o takzvané bootstrap vzorky, tedy sady vytvořené náhodným výběrem s vracením.
To znamená, že některé záznamy se v daném vzorku mohou objevit vícekrát, zatímco jiné v něm nemusejí být vůbec. Právě tato drobná odlišnost mezi trénovacími sadami způsobí, že jednotlivé modely nedojdou úplně ke stejnému výsledku. A právě z těchto rozdílů bagging těží.
Proč nestačí jen jeden model
V mnoha úlohách může jeden model fungovat dobře, ale zároveň být zbytečně citlivý na to, jak přesně vypadala data, na kterých se učil. Když se dataset jen trochu změní, model se může začít chovat jinak. To je problém hlavně u takzvaně nestabilních modelů, u nichž drobná změna ve vstupu může vést k poměrně výrazně jiné výsledné struktuře.
Bagging se tento problém snaží obejít tím, že nespoléhá na jedinou verzi řešení. Místo toho vytvoří více modelů, z nichž každý vidí jinou náhodnou variantu trénovacích dat. Když se jejich výstupy spojí, vliv náhodných odchylek se oslabí. Výsledný model pak obvykle působí vyrovnaněji a méně přehnaně reaguje na šum v datech.
Co znamená bootstrap aggregating
Samotný název metody dobře popisuje její logiku. Slovo bootstrap odkazuje na způsob, jakým se vytvářejí nové trénovací sady – tedy náhodným výběrem s vracením. Slovo aggregating pak označuje spojení výsledků více modelů do jedné finální predikce.
U klasifikačních úloh se obvykle používá většinové hlasování. Každý model navrhne svou třídu a výsledek určí ta, která se objevila nejčastěji. U regresních úloh se naopak častěji počítá průměr z dílčích předpovědí. V obou případech je princip stejný – nespoléhat na jediný výstup, ale využít společný efekt více modelů.
Proč se bagging často spojuje s rozhodovacími stromy
Bagging se dá použít i s jinými modely, ale nejčastěji se zmiňuje právě u rozhodovacích stromů. Důvod je jednoduchý. Rozhodovací strom je velmi užitečný model, ale bývá poměrně citlivý na drobné změny v datech. Když se trénovací sada trochu promění, strom se může rozvětvit jinak a dojít k jiné logice rozhodování.
Právě proto bagging u stromů často funguje velmi dobře. Vezme jejich přirozenou sílu – schopnost zachytit složité vztahy – ale zároveň tlumí jejich nestabilitu. Odtud je už jen krok k metodám, jako je náhodný les, který na této logice přímo stojí.
Jak bagging souvisí s variancí modelu
Ve strojovém učení se bagging nejčastěji spojuje se snižováním variance. Zjednodušeně řečeno jde o snahu omezit situace, kdy model reaguje příliš citlivě na konkrétní trénovací data a jeho výsledek zbytečně kolísá.
To je důležité i prakticky. Uživatel většinou neřeší, jestli má model „vysokou varianci“ v učebnicovém smyslu. Zajímá ho, jestli výstupy působí spolehlivě a nejsou zbytečně rozhozené. A právě tady bagging často pomáhá. Neslibuje dokonalost, ale dokáže model uklidnit a udělat jeho chování robustnější.
Bagging není totéž co boosting
Tyto dva pojmy se často pletou, protože oba patří mezi ensemble metody. Ve skutečnosti ale řeší problém odlišně. Bagging vytváří více modelů paralelně a snaží se jejich výstupy zprůměrovat nebo jinak spojit. Boosting naopak skládá modely postupně za sebe a každý další se více zaměřuje na chyby těch předchozích.
Kde se bagging používá v praxi
Bagging se používá hlavně tam, kde model umí z dat vytěžit užitečný signál, ale jeho výstup zbytečně kolísá podle toho, na jakém konkrétním vzorku dat se učil.
Typickým příkladem jsou rozhodovací stromy. Ty často fungují dobře, ale i menší změna v trénovací sadě může vést k tomu, že strom zvolí jinou otázku na začátku, jinak se rozvětví a dojde k odlišnému výsledku.
V praxi si to lze představit třeba u AI systému, který třídí příchozí e-maily do kategorií jako reklamace, obchodní dotaz nebo technická podpora.
Jeden rozhodovací strom může na základě konkrétní trénovací sady přikládat velkou váhu slovům jako „vrácení“, jiný zase formulacím typu „nefunguje“ nebo „objednávka“. Pokud by systém stál jen na jednom stromu, mohl by být jeho výsledek zbytečně citlivý na to, jak přesně vypadala data, na kterých se učil. Bagging tento problém zmírňuje tím, že vytvoří více stromů nad různými vzorky dat a jejich výsledky spojí hlasováním.
Podobně to funguje i u regresních úloh. Představte si model, který má odhadovat budoucí spotřebu energie, cenu nemovitosti nebo pravděpodobnost odchodu zákazníka. Jeden samostatný strom může reagovat příliš silně na několik konkrétních případů v datech a výsledný odhad pak zbytečně kolísá. Když ale místo jednoho stromu použijete větší počet stromů natrénovaných na různých bootstrapových vzorcích a jejich odhady zprůměrujete, dostanete obvykle stabilnější výsledek.
Právě v tom je bagging prakticky užitečný. Nezavádí úplně novou logiku modelu, ale omezuje vliv náhody a specifik konkrétní trénovací sady. Výsledkem bývá robustnější predikce, která není tolik závislá na tom, že se model naučil až příliš přesně jednu konkrétní podobu dat.
Jaké má bagging limity?
Přestože je bagging velmi užitečný, není to univerzální odpověď na všechno.Největší přínos má tam, kde je základní model nestabilní a má vyšší varianci. Pokud je model už sám o sobě velmi stabilní, nemusí být efekt tak výrazný. V některých případech může bagging přinést jen malý rozdíl, zatímco zvýší výrazně výpočetní náročnost. Zároveň platí, že bagging nevyřeší všechno. Pokud jsou špatná data, nevhodně zvolený model nebo špatně definovaný cíl úlohy, samotné skládání více modelů situaci nezachrání. Je to silná technika, ale pořád jen součást širšího návrhu modelu a tréninkového postupu.
Kde se bagging využívá i mimo technické obory
Bagging má praktické využití všude tam, kde záleží na stabilitě predikce.
Typicky jde o finance, pojišťovnictví, marketing, e-commerce nebo zákaznickou podporu – tedy obory, kde modely pomáhají odhadovat riziko, předvídat chování zákazníků, třídit požadavky nebo plánovat poptávku.
V těchto případech je problém, když model reaguje příliš citlivě na náhodné odchylky v trénovacích datech. Bagging tento problém zmírňuje tím, že místo jednoho modelu kombinuje více jeho variant. Výsledkem bývá stabilnější a spolehlivější výstup, což je v reálném provozu často důležitější než o něco „chytřejší“, ale zato více nestabilní model, na který není spolehnutí.
Na širší souvislosti toho, jak AI funguje, jak se učí a proč kolem ní vzniká tolik zjednodušených představ, navazuje také článek 17 nejčastějších mýtů o umělé inteligenci.
Související pojmy
- Strojové učení – bagging je součást strojového učení, protože i tady model nevychází z ručně daných pravidel, ale z dat. Jen místo jednoho modelu pracuje s více variantami natrénovanými na různých vzorcích a jejich výstupy následně spojuje.
- Rozhodovací strom – právě u stromů se bagging používá nejčastěji, protože dokáže tlumit jejich přirozenou citlivost na změny v datech.
- Ensemble metoda – bagging patří právě do této skupiny přístupů, protože místo jednoho modelu pracuje s více dílčími modely a jejich výstupy spojuje do jedné společné predikce, která bývá stabilnější než výsledek jediného modelu.
- Variance modelu – tento pojem rozšiřuje vysvětlení o to, proč některé modely zbytečně kolísají a proč jejich agregace vede ke klidnějšímu výsledku.
- Bootstrap – ukazuje technický základ baggingu, tedy způsob, jakým vznikají různé trénovací vzorky pro jednotlivé modely.
- Boosting – pomáhá odlišit dvě často zaměňované ensemble metody, které sice obě kombinují více modelů, ale dělají to zcela jinou logikou.
Už jste četli? Co je smršťovací bužírka: Použití & instalace
Smršťovací bužírky jsou smrštitelné plastové trubičky, které se používají k izolaci vodičů, zajišťují odolnost proti oděru a ochranu spojů v elektrotechnice. Lze je také použít k opravě izolace na vodičích nebo k jejich svazkování, k ochraně vodičů nebo malých dílů před drobným oděrem a k vytvoření těsnění kabelových vstupů, které poskytuje ochranu před vlivem prostředí....