Kdy mám vyvážit třídy v tréninkové datové sadě?

Měla jsem online kurz, kde jsem se dozvěděla, že nevyvážené třídy v tréninkových datech mohou vést k problémům, protože klasifikační algoritmy platí pro pravidlo většiny, protože poskytuje dobré výsledky, pokud je nerovnováha příliš velká. V úkolu bylo nutné vyvážit data pomocí podvzorkování většinové třídy.

V tomto blogu však někdo tvrdí, že vyvážená data jsou ještě horší:

https://matloff.wordpress.com/2015/09/29/unbalanced-data-is-a-problem-no-balanced-data-is-worse/

Takže který to je? Mám vyvážit data nebo ne? Závisí to na použitém algoritmu, protože někteří by mohli zvládnout nevyvážené proporce tříd? Pokud ano, které z nich jsou spolehlivé na nevyvážených datech?

Odpověď

Intuitivní uvažování bylo vysvětleno v příspěvku na blogu:

Pokud je naším cílem Predikce, způsobí to definitivní zkreslení. A co je horší, bude se jednat o trvalé zkreslení v tom smyslu, že nebudeme mít konzistentní odhady, jak bude velikost vzorku narůstat.

Takže problém (uměle) vyvážených dat je pravděpodobně horší než nevyvážený případ .

Vyvážené údaje jsou vhodné pro klasifikaci, ale zjevně ztrácíte informace o frekvencích vzhledu, které ovlivní samotné metriky přesnosti i výkonnost výroby .

Řekněme, že rozpoznáváte ručně psaná písmena z anglické abecedy (26 písmen). Vyvážení vzhledu každého písmene dá každému písmenu pravděpodobnost, že bude klasifikováno (správně nebo ne) zhruba 1/26, takže klasifikátor zapomene na skutečné rozložení písmen v původním vzorku. A je ok , když je klasifikátor schopen zobecnit a rozpoznat každé písmeno s vysokou přesností .

Pokud však přesnost a nejdůležitější zobecnění není „tak vysoké“ (nemohu vám dát definici – můžete si ji představit jen jako „nejhorší případ“) – nesprávně klasifikované body budou nejvíce -pravděpodobně rovnoměrně rozdělit mezi všechna písmena, něco jako:

"A" was misclassified 10 times "B" was misclassified 10 times "C" was misclassified 11 times "D" was misclassified 10 times ...and so on 

Na rozdíl od bez vyvážení (za předpokladu, že „A“ a „C“ mají mnohem vyšší pravděpodobnost vzhled v textu)

"A" was misclassified 3 times "B" was misclassified 14 times "C" was misclassified 3 times "D" was misclassified 14 times ...and so on 

Časté případy tedy způsobí méně chybných klasifikací. Ať už je to dobré nebo ne, záleží na vašem úkolu. Pro přirozené rozpoznávání textu by se dalo tvrdit, že písmena s vyšší frekvencí jsou životaschopnější, protože by zachovala sémantiku původního textu, čímž by se úkol rozpoznávání přiblížil předpovědi (kde sémantika představuje tendences ). Pokud se ale pokoušíte rozpoznat něco jako snímek obrazovky klíče ECDSA (více entropie -> méně predikce) – udržování nevyvážených dat by nepomohlo. Znovu tedy záleží.

Nejdůležitější rozdíl je v tom, že odhad přesnosti je sám o sobě zkreslený (jak vidíte na příkladu vyvážené abecedy), takže nevíte, jak je chování modelu ovlivňováno nejvzácnějšími nebo nejčastějšími body.

PS Výkon nevyvážené klasifikace můžete kdykoli sledovat pomocí přesných / vyvolávacích metrik nejprve a rozhodnout se, zda je třeba přidat vyvážení nebo ne.


EDIT : V teorie odhadu přesně v rozdílu mezi průměrem vzorku a průměrem populace. Například můžete znát (pravděpodobně) skutečné rozdělení anglických písmen v abecedě $ p (x_i | \ theta) $ , ale váš vzorek (tréninková sada) není dostatečně velký, aby jej bylo možné správně odhadnout (s $ p (x_i | \ hat \ theta) $ ). Aby bylo možné kompenzovat $ \ hat \ theta_i – \ theta_i $ , někdy se doporučuje rebalancovat třídy podle samotné populace nebo parametrů známých z větší vzorek (tedy lepší odhadce). V praxi však neexistuje žádná záruka, že „větší vzorek“ bude rovnoměrně distribuován kvůli riziku získání zkreslených dat na každém kroku (řekněme anglická písmena shromážděná z technické literatury vs. fikce vs celé knihovny), takže vyvážení může být stále škodlivé .

Tato odpověď by měla také objasnit kritéria použitelnosti pro vyvážení:

Problém nevyváženosti třídy je způsoben tím, že není dostatek vzorů patřících do třídy menšin, nikoli poměrem pozitivních a negativních vzorců jako takových.Obecně pokud máte dostatek dat, problém „nevyváženosti třídy“ nevzniká

Závěrem lze říci, že umělé vyvážení je zřídka užitečné, pokud je tréninková sada dostatečně velká. Absence statistických dat z většího identicky distribuovaného vzorek také naznačuje, že není nutné umělé vyvážení (zejména pro predikci), jinak je kvalita odhadce stejně dobrá jako „pravděpodobnost, že potkáte dinosaura“:

Jaká je pravděpodobnost, že se na ulici setkáte s dinosaurem?

1/2 buď potkáte dinosaura, nebo nepotkáte dinosaura

Komentáře

  • Myslím si, že kromě vysvětlení problému je důležité tuto odpověď odnést, že je třeba zkuste nejprve provést nesymetrickou kontrolu a zkontrolovat její výsledky a pouze v případě potřeby provést vyvážení a zkontrolovat její výsledek. +1
  • Jinými slovy, model s rovnoměrně rozloženými třídami do podmnožiny školení ztratí svou přesnost v neviditelných datech, že? Ale v opačném případě, kde se pokusíte náhodně extrahovat položky datové sady pro vaše podmnožiny školení / testování, bude váš klasifikátor fungovat lépe?
  • @ChristosK. Jak mnozí uvedli, když vidíte problém jako klasifikaci, je těžké uvažovat o predikci. V každém případě, pokud odstraníte zkreslení (vzorek „náhodně“) – potřebujete větší vzorek ke zlepšení výkonu. Je to jen „obvykle“ vzorek, který je dostatečně velký, aby zachoval sémantiku, takže nadměrné vyvážení by jen ublížilo a fungovalo jako regularizující kladivo, které „zplošťuje“ vše bez řádného zvážení. Jak naznačuje metafora dinosaurů, „vyvážený“ neznamená „rovnoměrný“ – správné vyvážení provedete pouze tehdy, když víte, že některé pravděpodobnosti jsou v „náhodném“ vzorku zkresleny.
  • @ChristosK. Díky za vysvětlení. Není to totéž, co jsem měl na mysli, ale přístup je velmi podobný. Obvyklým doporučením použitelnosti k-fold je udělat to, když je váš počáteční vzorek „trochu malý“. Nejste si jisti, ale skládání by to stejně nemělo bolet – prostě to trvá více běhů a čím méně vám záleží na předpovědi, tím méně vám záleží na zobecnění / výkonu tak tautologicky, jak to zní :). Ale celkově – k-fold znamená v zásadě menší zkreslení.
  • @ChristosK. A jako varování, poměr spam / ne-spam může být sama o sobě nestacionární náhodná proměnná. Se všemi těmi „falešnými zprávami“, „ruskými trolly“ a dalšími věcmi bych si na takové předpoklady dával pozor – poměr by mohl být také zkreslený. Možná budete chtít nejprve odhadnout PrecisionRecall na svých klasifikátorech, pokud je něco nedostatečně vzorkováno – raději bych shromáždil / vygeneroval (?) Více dat.

Odpovědět

V souladu s komentářem @ kjetil-b-halvorsen rychlé přijetí strojového učení zmátlo výzkumníky ohledně predikce vs. klasifikace. Jak jsem popsal podrobněji zde je klasifikace vhodná pouze v menšině případů. Pokud je výsledek vzácný (nebo příliš běžný), pravděpodobnosti jsou všechno , protože v takovém případě lze rozumně hovoříme pouze o tendencích , nikoli o předpovídání jednotlivých výskytů.

Ve statistikách jsme se už dávno dozvěděli, že jakákoli metoda, která vyžaduje, aby některá data byla vyloučena, je velmi podezřelá. Cíl vyvážení výsledků je tedy ztracen. Predikce tendencí (pravděpodobností) to nevyžaduje. A jakmile odhadnete pravděpodobnost, můžete učinit optimální rozhodnutí použitím Funkce užitečnosti / nákladů / ztrát na předpokládané riziko.

Odpověď

Záleží na tom, čeho chcete klasifikací dosáhnout?

Řekněme, že jde o rakovinu bez rakoviny, pak je detekce rakoviny životně důležitá. Protože však rakovina nebude tvořit většinu vašich dat, klasifikátor může v podstatě poslat všechny případy do třídy bez rakoviny a získat velmi vysokou přesnost. Ale nemůžeme si to dovolit, takže v zásadě sestupujeme ze vzorků případů bez rakoviny, čímž v podstatě posunujeme rozhodovací hranici z oblasti rakoviny do oblasti bez rakoviny.

I v případech použití, kdy přesnost je náš jediný cíl, vyvážení může být zásadní, pokud se očekává, že se časová rovnováha testu bude lišit od času vlaku.

Řekněme například, že chcete klasifikovat manga a pomeranče, máte datový soubor školení s 900 mangami a 30 pomeranči, ale očekáváte, že jej nasadíte na tržiště se stejným mangem a pomerančem, pak byste v ideálním případě měli ochutnat v očekávaném poměru vzorku, abyste maximalizovali přesnost.

Komentáře

  • Tomu jsem rozuměl z přednášek, které jsem měl. Nerozumím však, kdy může být vyvážení špatné, jak naznačuje tento příspěvek na blogu. Proč by někdy bylo špatné zůstatek, pokud pro každou třídu zbývá dostatek datových bodů?
  • Omlouváme se, ale podle vaší analogie, co má distribuce ovoce na trhu společného s modelem AC kuracie?Naučili jste se buď oddělit mango od pomerančů, nebo ne. Jinými slovy, měli byste být schopni nasadit stejný model na trh pouze s oranžovou barvou nebo pouze s mangem.
  • Ale problém s příkladem rakoviny je považovat to za klasifikaci , mělo by to být považováno za odhad rizika . Poté zmizí zjevný problém s nevyváženými třídami, viz stats.stackexchange.com/questions/127042/…

Odpověď

Když jsou vaše data vyvážená, můžete raději zkontrolovat přesnost metrik. Ale když je v takové situaci vaše data nevyvážená, vaše přesnost není konzistentní pro různé iterace. Musíte soustředit více metrik, jako je Precision (PPR), Recall (citlivost). Při porovnávání by tyto dvě metriky měly být vyvážené. Také byste měli zkontrolovat F1-skóre, které je harmonickým průměrem přesnosti a vyvolání. To platí pro všechny algoritmy strojového učení

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *