Nevyvážená data (class imbalance)

Nevyvážená data jsou situace v klasifikaci, kdy jsou třídy zastoupeny výrazně nerovnoměrně – typicky u detekce podvodů, poruch, vzácných nemocí nebo kliknutí na reklamu, kde menšinová třída může tvořit zlomek procenta. Základní potíž je dvojí. Metrika správnosti přestává být informativní, protože triviální model predikující vždy majoritní třídu dosáhne skvěle vypadajícího výsledku a přitom nemá žádnou hodnotu; hodnotit je proto nutné pomocí přesnosti a úplnosti nebo plochy pod křivkou precision-recall. Zároveň sama optimalizace ztrátové funkce menšinovou třídu zanedbá, protože její příspěvek k celkové chybě je nepatrný. Řešení se dělí do tří skupin. Na úrovni dat pomáhá podvzorkování majoritní třídy, převzorkování minoritní nebo syntetická generace vzorků metodou SMOTE, která interpoluje mezi blízkými menšinovými body. Na úrovni algoritmu se používá vážení tříd ve ztrátě či focal loss potlačující snadné případy. Na úrovni rozhodování se posouvá klasifikační práh podle skutečných nákladů obou typů chyb, což bývá nejúčinnější a nejlevnější opatření vůbec.


Kdybyste měli předpovídat zemětřesení v Praze a odpovídali každý den „nebude“, měli byste za posledních sto let úspěšnost přes 99,99 procenta – a byli byste naprosto k ničemu. To je celý problém v kostce. Model, který se učí na takových datech, dojde ke stejnému zjištění jako líný úředník: mlčet se vyplácí. Musíte mu proto změnit motivaci – dát mu za přehlédnuté zemětřesení tisíckrát vyšší pokutu než za falešný poplach – nebo si vzácné případy do učebnice záměrně přidat, aby vypadaly častěji, než skutečně jsou.

Je pro vás článek užitečný a čerpáte z něj? Zkopírujte si citaci