komponenta detekce anomálií PCA-Based

Tento článek popisuje, jak pomocí komponenty PCA-Based Detekce anomálií v návrháři Azure Machine Learning vytvořit model detekce anomálií založený na analýze hlavních komponent (PCA).

Tato komponenta vám pomůže vytvořit model ve scénářích, kdy je snadné získat trénovací data z jedné třídy, jako jsou platné transakce, ale obtížné získat dostatečné vzorky cílových anomálií.

Například k detekci podvodných transakcí často nemáte dostatek příkladů podvodu, na které byste se mohli trénovat. Ale můžete mít mnoho příkladů dobrých transakcí. Komponenta detekce anomálií PCA-Based řeší problém analýzou dostupných funkcí, aby určila, co představuje "normální" třídu. Komponenta pak použije metriky vzdálenosti k identifikaci případů, které představují anomálie. Tento přístup umožňuje vytrénovat model pomocí existujících nevyrovnaných dat.

Další informace o analýze hlavních komponent

PCA je zavedená technika strojového učení. Často se používá při průzkumné analýze dat, protože odhaluje vnitřní strukturu dat a vysvětluje odchylku v datech.

ANALÝZA PCA funguje tak, že analyzuje data, která obsahují více proměnných. Hledá korelace mezi proměnnými a určuje kombinaci hodnot, která nejlépe zachycuje rozdíly ve výsledcích. Tyto kombinované hodnoty funkcí se používají k vytvoření kompaktnějšího prostoru funkcí označovaného jako hlavní komponenty.

Pro detekci anomálií se analyzuje každý nový vstup. Algoritmus detekce anomálií vypočítá svou projekci na vlastních vektorech spolu s normalizovanou chybou rekonstrukce. Normalizovaná chyba se používá jako skóre anomálií. Čím vyšší je chyba, tím je instance neobvyklejší.

Další informace o fungování PCA a implementaci detekce anomálií najdete v těchto dokumentech:

Konfigurace detekce anomálií PCA-Based

  1. Přidejte komponentu Detekce anomálií na základě PCA do kanálu v návrháři. Tuto komponentu najdete v kategorii Detekce anomálií .

  2. Na pravém panelu komponenty vyberte možnost Trénovací režim . Určete, jestli chcete model vytrénovat pomocí konkrétní sady parametrů, nebo pomocí úklidu parametrů najít nejlepší parametry.

    Pokud víte, jak chcete model nakonfigurovat, vyberte možnost Jeden parametr a jako argumenty zadejte konkrétní sadu hodnot.

  3. V části Počet komponent, které se mají použít v PCA zadejte požadovaný počet výstupních funkcí nebo komponent.

    Rozhodnutí o tom, kolik komponent se má zahrnout, je důležitou součástí návrhu experimentu, který používá PCA. Obecně platí, že byste neměli zahrnovat stejný počet komponent PCA jako proměnné. Místo toho byste měli začít s menším počtem součástí a zvyšovat je, dokud nebude splněno určité kritérium.

    Nejlepších výsledků dosáhnete, když je počet výstupních komponent menší než počet sloupců funkcí dostupných v datové sadě.

  4. Zadejte míru převzorkování, které se má provést během náhodného trénování PCA. V případě problémů s detekcí anomálií ztěžují nevyvážená data použití standardních technik PCA. Zadáním určitého množství převzorkování můžete zvýšit počet cílových instancí.

    Pokud zadáte hodnotu 1, neprovádí se žádné převzorkování. Pokud zadáte hodnotu vyšší než 1, vygenerují se další ukázky, které se použijí při trénování modelu.

    Existují dvě možnosti v závislosti na tom, jestli používáte úklid parametrů, nebo ne:

    • Parametr převzorkování pro randomizovanou PCA: Zadejte jedno celé číslo, které představuje poměr převzorkování menšinové třídy oproti normální třídě. (Tato možnost je dostupná, když používáte metodu trénování s jedním parametrem .)

    Poznámka

    Nemůžete zobrazit převzorkované datové sady. Další informace o používání převzorkování s PCA najdete v technických poznámkách.

  5. Výběrem možnosti Povolit normalizaci střední hodnoty funkce vstupu normalizujete všechny vstupní funkce na střední hodnotu nuly. Normalizace nebo škálování na nulu se obecně doporučuje pro PCA, protože cílem PCA je maximalizovat rozptyl mezi proměnnými.

    Tato možnost je ve výchozím nastavení zaškrtnutá. Výběr zrušte, pokud hodnoty již byly normalizovány jinou metodou nebo měřítkem.

  6. Připojte označenou trénovací datovou sadu a jednu z trénovacích komponent.

    Pokud nastavíte možnost Vytvořit režim školitele na jeden parametr, použijte komponentu Trénování modelu detekce anomálií .

  7. Odešlete kanál.

Výsledky

Po dokončení trénování můžete natrénovaný model uložit. Nebo ho můžete připojit ke komponentě Určení skóre modelu a předpovědět skóre anomálií.

Vyhodnocení výsledků modelu detekce anomálií:

  1. Ujistěte se, že je v obou datových sadách dostupný sloupec skóre.

    Pokud se pokusíte vyhodnotit model detekce anomálií a zobrazí se chyba "Ve vyhodnocené datové sadě není žádný sloupec skóre k porovnání", používáte typickou datovou sadu vyhodnocení, která obsahuje sloupec popisku, ale žádná skóre pravděpodobnosti. Zvolte datovou sadu, která odpovídá výstupu schématu pro modely detekce anomálií, která zahrnuje sloupce Popisky se skóre a Vyhodnocené pravděpodobnosti .

  2. Ujistěte se, že jsou sloupce popisků označené.

    Někdy se metadata přidružená ke sloupci popisku v grafu kanálu odeberou. Pokud k tomu dojde a použijete komponentu Vyhodnotit model k porovnání výsledků dvou modelů detekce anomálií, může se zobrazit chyba Ve vyhodnocené datové sadě není žádný sloupec popisku. Nebo se může zobrazit chyba Ve vyhodnocené datové sadě není žádný sloupec popisku, který by bylo možné porovnat.

    Těmto chybám se můžete vyhnout tak, že před komponentu Vyhodnocení modelupřidáte komponentu Upravit metadata. Pomocí voliče sloupců zvolte sloupec třídy a v seznamu Pole vyberte Popisek.

  3. Pomocí komponenty Execute Python Script upravte kategorie sloupců popisků jako 1 (pozitivní, normální) a 0 (negativní, neobvyklé).

    label_column_name = 'XXX'
    anomaly_label_category = YY
    dataframe1[label_column_name] = dataframe1[label_column_name].apply(lambda x: 0 if x == anomaly_label_category else 1)
    

Technické poznámky

Tento algoritmus používá PCA k odhadu podprostoru, který obsahuje normální třídu. Podprostor je rozložený pomocí vlastních vektorů přidružených k nejvyšším vlastnostem v matici kovariance dat.

Pro každý nový vstup detektor anomálií nejprve vypočítá svou projekci na vlastních vektorech a pak vypočítá normalizovanou chybu rekonstrukce. Tato chyba je skóre anomálií. Čím vyšší je chyba, tím je instance neobvyklejší. Podrobnosti o způsobu výpočtu normálního prostoru najdete v článku Wikipedie: Analýza hlavních komponent.

Další kroky

Podívejte se na sadu komponent dostupných pro Azure Machine Learning.

Seznam chyb specifických pro komponenty návrháře najdete v tématu Výjimky a kódy chyb pro návrháře .