Sdílet prostřednictvím


SMOTE

Důležité

Podpora studia Machine Learning (Classic) skončí 31. srpna 2024. Doporučujeme do tohoto data přejít na službu Azure Machine Learning.

Od 1. prosince 2021 nebude možné vytvářet nové prostředky studia Machine Learning (Classic). Do 31. srpna 2024 můžete pokračovat v používání stávajících prostředků studia Machine Learning (Classic).

Dokumentace ke studiu ML (Classic) se vyřazuje z provozu a v budoucnu se nemusí aktualizovat.

Zvýší počet příkladů nízkého výskytu v datové sadě pomocí syntetické části přešikování.

Kategorie: Transformace a manipulace s daty

Poznámka

Platí pro: Machine Learning Studio (classic)

Podobné moduly s přetahováním jsou k dispozici v Azure Machine Learning návrháři.

Přehled modulu

Tento článek popisuje, jak pomocí modulu SMOTE v Machine Learning Studiu (klasickém) zvýšit počet nedostatečně zastoupených případů v datové sadě používané pro strojové učení. SMOTE je lepší způsob, jak zvýšit počet výjimečných případů, než jednoduše duplikovat existující případy.

Modul SMOTE připojíte k nevyvážené datové sadě. Existuje mnoho důvodů, proč může být datová sada nevyvážená: kategorie, na kterou cílíte, může být v populaci velmi vzácná nebo může být obtížné shromažďovat data. SMOTE se obvykle používá v případě , že třída, kterou chcete analyzovat, není reprezentována příliš.

Modul vrátí datovou sadu, která obsahuje původní vzorky, a další počet syntetických vzorů v závislosti na procentu, které zadáte.

Další informace o SMOTE

SMOTE je zkratka pro Synthetic Minority Oversampling Technique. Jedná se o statistickou techniku pro vyvážení počtu případů v datové sadě. Modul funguje tak, že vygeneruje nové instance z existujících případů, které jako vstup zadáte. Tato implementace SMOTE nemění počet většiny případů.

Nové instance nejsou jenom kopiemi stávajících případů v oblasti této oblasti. Místo toho algoritmus vezme vzorky prostoru prvků pro každou cílovou třídu a její nejbližší sousedy a vygeneruje nové příklady, které kombinují vlastnosti cílového případu s vlastnostmi svých sousedů. Tento přístup zvyšuje funkce dostupné pro jednotlivé třídy a zobecní ukázky.

SMOTE vezme jako vstup celou datovou sadu, ale zvýší procento pouze v případě, že je v jejich náměru podíl. Předpokládejme například, že máte nevyváženou datovou sadu, ve které pouze 1 % případů má cílovou hodnotu A (třída v 99 % případů) a 99 % případů má hodnotu B. Pokud byste chtěli zvýšit procento případů v případě, že jsou v jejich většině procenta, na dvojnásobek předchozího procenta, zadejte ve vlastnostech modulu hodnotu 200 jako procento SMOTE .

Příklady

Doporučujeme vyzkoušet SMOTE s malou datovou sadou, abyste viděli, jak funguje. V následujícím příkladu se používá datová sada Pro odběr dat, která je dostupná v Machine Learning Studiu (klasickém).

Pokud přidáte datovou sadu do experimentu a kliknete na Vizualizovat ve výstupu datové sady, uvidíte, že ze 748 řádků nebo případů v datové sadě existuje 570 případů (76 %) ze třídy 0 a 178 případů (24 %) třídy 1. I když se jedná o nevyváženou nevyváženost, třída 1 představuje osoby, které důtnaly glukózu, a proto tyto řádky obsahují prostor vlastností, který chcete modelovat.

Pokud chcete zvýšit počet případů, můžete pomocí násobků po 100 nastavit hodnotu procenta SMOTE následujícím způsobem:

Třída 0 Třída 1 celkem
Původní datová sada

(odpovídá procentu SMOTE = 0)
570

76%
178

24%
748
Procento SMOTE = 100 570

62%
356

38%
926
Procento SMOTE = 200 570

52%
534

48%
1104
Procento SMOTE = 300 –300 570

44%
712

56%
1282

Upozornění

Zvýšení počtu případů pomocí SMOTE nezaručuje vytvoření přesnějších modelů. Měli byste zkusit experimentovat s různými procenty, různými sadami funkcí a různým počtem nejbližších sousedů, abyste viděli, jak přidávání případů ovlivňuje váš model.

Jak nakonfigurovat SMOTE

  1. Přidejte do experimentu modul SMOTE. Modul najdete v části Moduly Transformace dat v kategorii manipulace.

  2. Připojení datovou sadu, kterou chcete zvýšit. Pokud chcete určit prostor funkcí pro vytváření nových případů, a to buď pomocí jenom konkrétních sloupců, nebo vyloučením některých sloupců, použijte modul Vybrat sloupce v datové sadě k izolaci sloupců, které chcete použít před použitím SMOTE.

    Jinak je vytváření nových případů pomocí SMOTEzaložené na všech sloupcích, které zadáte jako vstupy.

  3. Ujistěte se, že sloupec obsahující popisek nebo cílovou třídu je takto označený.

    Pokud žádný sloupec popisků neexistuje, pomocí modulu Upravit metadata vyberte sloupec, který obsahuje popisky tříd, a v rozevíracím seznamu Pole vyberte Popisek.

  4. Modul SMOTE automaticky identifikuje třídu minority ve sloupci label (popisek) a pak získá všechny příklady pro třídu této třídy.

  5. Do možnosti SMOTE percentage (Procento SMOTE ) zadejte celé číslo, které ve výstupní datové sadě udává cílové procento případů v jejich náměru. Například:

    • Zadejte 0 (%). Modul SMOTE vrátí přesně stejnou datovou sadu, kterou jste poskytli jako vstup, a nebude přidávat žádné nové případy. V této datové sadě se podíl tříd nezměnil.

    • Zadejte 100 (%). Modul SMOTE generuje nové případy, kdy se přidávají stejné nádůpady jako v původní datové sadě. Vzhledem k tomu, že SMOTE nezvětšuje počet většiny případů, poměr případů každé třídy se teď změnil.

    • Zadejte 200 (%). V porovnání s původní datovou sadou modul zdvojnásobuje procento případů, kdy je jejich počet věnný. Nezískáte tak dvakrát tolik menších případů jako předtím. Místo toho se velikost datové sady zvětšuje takovým způsobem, že počet většiny případů zůstane stejný a počet případů v jejich většině se zvýší, dokud nebude odpovídat požadované procentuální hodnotě.

    Poznámka

    Pro procento SMOTE používejte pouze násobky 100.

  6. Pomocí možnosti Number of nearest neighbors (Počet nejbližších sousedů) můžete určit velikost prostoru funkcí, který algoritmus SMOTE používá při vytváření nových případů. Nejbližší soused je řádek dat (případ), který je velmi podobný nějakému cílovému případu. Vzdálenost mezi libovolnými dvěma případy se měří kombinováním vážených vektorů všech prvků.

    • Zvýšením počtu nejbližších sousedů získáte funkce z více případů.
    • Když udržujete nízký počet nejbližších sousedů, použijete funkce, které jsou více jako ty v původním vzorku.
  7. Pokud chcete zajistit stejné výsledky při spuštění stejného experimentu se stejnými daty, zadejte hodnotu do textového pole Náhodné seedování. V opačném případě modul při nasazení experimentu vygeneruje náhodné dosazování na základě hodnot hodin procesoru, což může v průběhu spuštění způsobit trochu odlišné výsledky.

  8. Spusťte experiment.

    Výstupem modulu je datová sada obsahující původní řádky a určitý počet přidaných řádků s menšinovými případy.

Tip

pokud chcete zjistit, které nové řádky byly přidány, můžete použít datové moduly použít SQL transformovat nebo spojovat .

Technické poznámky

  • Při publikování modelu, který používá modul SMOTE , odeberte SMOTE z prediktivního experimentu před jeho publikováním jako webovou službu. Důvodem je to, že SMOTE je určený ke zlepšení modelu během školení a není určen pro bodování. Pokud publikovaný prediktivní experiment obsahuje modul SMOTE, může se zobrazit chyba.

  • Pokud použijete možnost čištění chybějících hodnot nebo jiné transformace k opravě dat před použitím SMOTE, můžete často získat lepší výsledky.

  • Někteří výzkumníki prozkoumali, jestli je SMOTE efektivní pro rozsáhlá nebo zhuštěná data, jako jsou například ta, která se používají v klasifikaci textu nebo v datových sadách genomiky. Tento dokument obsahuje dobrý přehled účinků a teoretické platnosti použití SMOTE v takových případech: Blagus a Lusa: SMOTE pro rozsáhlá data s nevyváženými třídami .

    Pokud SMOTE ve vaší datové sadě neplatí, další přístupy, které byste mohli zvážit, zahrnují různé metody pro převzorkování menšinových případů nebo odvzorkování těchto případů, jakož i techniky ze kompletu, které vám pomůžou naučit se přímo, pomocí clusteringu, zavazadla nebo adaptivního zvyšování úrovně.

Očekávaný vstup

Název Typ Description
ukázky Tabulka dat Datová sada vzorků

Parametry modulu

Name Rozsah Typ Výchozí Description
Procento SMOTE >= 0 Integer 100 Množství převzorkování v násobcích 100.
Počet nejbližších sousedů >= 1 Integer 1 Počet nejbližších sousedů, ze kterých se mají nakreslovat funkce pro nové případy
Náhodné osazení Všechny Integer 0 Počáteční hodnota pro generátor náhodných čísel

Výstup

Název Typ Description
Tabulka Tabulka dat Tabulka dat obsahující původní ukázky plus další počet syntetických vzorků minoritní třídy. Počet nových vzorků je (smotePercent/100) * T, kde T je počet vzorků minoritní třídy.

Viz také

Ukázka a rozdělení
Seznam modulů a-Z