Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Detekcia odľahlých hodnôt je dôležitou úlohou v oblasti strojového učenia. Používa sa na identifikáciu neobvyklých pozorovaní alebo údajových bodov, ktoré sa odchyľujú od všeobecného trendu súboru údajov. Jedným účinným algoritmom na detekciu odľahlých hodnôt je algoritmus Isolation Forest

V dnešnom blogu sa budeme zaoberať základmi algoritmu Isolation Forest a ukážeme si, ako ho použiť na detekciu odľahlých hodnôt v množine údajov pomocou . Celé video tohto návodu si môžete pozrieť v spodnej časti tohto blogu .

Obsah

Izolačný lesný algoritmus vs. metóda krabicového grafu 

Nižšie sú uvedené dva vizuálne prvky na detekciu odľahlých hodnôt. Všimnite si významné rozdiely vo vizuálnej reprezentácii pri použití v porovnaní s tým, keď sa na detekciu odľahlých hodnôt používa model Isolation Forest ML. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

V modeli Isolation Forest ML je percento odľahlých hodnôt zistených algoritmom detekcie anomálií IS 32,56 %. Pri použití rovnakého algoritmu spadá zvyšných 67,44 % údajov do normálneho rozsahu, ktorý je dosť citlivý. Naším cieľom je doladiť túto citlivosť pomocou . 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Tradičná metóda detekcie odľahlých hodnôt

Tradičným spôsobom hľadania odľahlých hodnôt je použitie metódy krabicového grafu . V tejto metóde používame IQR na zistenie toho, čo spadá mimo očakávaný rozsah údajov. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

V tomto príklade je tento jediný bod nad fúzom našou odľahlou hodnotou.

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Ak tento vizuálny graf preložíme do koláčového grafu, dostaneme túto konkrétnu odľahlú hodnotu, ktorá zodpovedá 2,33 % celkových údajov. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

V tomto blogu sa naučíme, ako používať metódu Isolation Forest ML, doladiť ju tak, aby zodpovedala tradičnej metóde a zvýšiť alebo znížiť jej citlivosť.

Súbor údajov pre algoritmus izolácie lesa

Otvorte náš súbor údajov v LuckyTemplates. Potom kliknite na položku Transformovať údaje. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Zobrazí sa náš súbor údajov pre tento tutoriál. Obsahuje dátum , počet používateľov , index a odľahlú hodnotu lesa izolácie s výstupom 1 pre normálny rozsah a -1 pre odľahlé hodnoty  .

Máme tiež stĺpec pre tradičnú odľahlú hodnotu a podmienený stĺpec s názvom Zisťovanie anomálií IS odrážajúci odľahlú hodnotu izolácie lesa. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Náš druhý dotaz ukazuje náš dátový rámec, ktorý sa naučíme dať všetko dohromady. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Kódy Pythonu

Na table Vlastnosti môžeme vidieť naše dva spustené skripty. Pomocou jedného z týchto skriptov vytvoríme výstup Isolation Forest a pomocou druhého vygenerujeme tradičnú odľahlú hodnotu. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Python kód algoritmu izolácie lesa

Kliknutím na položku Spustiť skript Pythonu zobrazíte kód. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

V tomto kóde Pythonu importujeme ako pd a použite niečo, čo sa nazýva Isolation Forest. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Les izolácie je stromový model, ktorý sa rozhoduje na základe stromovej štruktúry a potom rozhoduje, či ide o odľahlú hodnotu alebo nie. Nazývame to súborový model , pretože používa dve rôzne metódy na nájdenie konkrétnej odľahlej hodnoty. 

Tiež nahradíme premennú množiny údajov , ktorá obsahuje predvolenú množinu údajov, ako df

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Vzhľadom na našu množinu údajov nebudeme potrebovať dva riadky kódov zvýraznené nižšie, takže tieto riadky môžeme jednoducho odstrániť. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

To, čo robíme, je inštancia modelu.

Uložte model ako IsolationForest a nechajte model naučiť sa údaje s používateľmi. Potom vytvorte nový stĺpec s názvom Detekcia anomálií , ktorý prejde späť cez všetky údaje, ktoré sa naučí, a predpovedá, ktorý z nich by mal byť odľahlý alebo nie. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Pre túto funkciu je predvolená hodnota kontaminácie nastavená na 0,5 . Preto je v súčasnosti mimoriadne citlivý a bude hľadať veľa odľahlých hodnôt. To je dôvod, prečo v našom koláčovom grafe vyššie máme veľmi vysoký rozsah odľahlých hodnôt na úrovni 32,56 %. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Aby bola menej citlivá, môžeme vo funkcii IsolationForest pridať kontamináciu = .1 .

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Nakoniec obnovte index a kliknite na tlačidlo OK.

Výsledkom bude súhrnná tabuľka. Prejdite na tablu Aplikované kroky a kliknite na df.

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Vo výstupe nájdeme odľahlé hodnoty v stĺpci Detekcia anomálií

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Chceme tiež vidieť, ako sa mu darí vedľa tradičnej odľahlej hodnoty. 

Tradičný odľahlý kód Pythonu

Spustíme ďalší skript Python, ktorým je v tomto príklade Run Python script1.

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Tento kód pridáva odľahlú funkciu pomocou prvého a tretieho kvartilu. Keď odpočítame q1 od q3 , dostaneme medzikvartilový rozsah (IQR)

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Nasledujúce dva riadky stanovujú podmienky pre odľahlé hodnoty. Prvý riadok hovorí, že čokoľvek menšie ako 1,5 * iqr sa považuje za záporné alebo nižšie odľahlé hodnoty. Aj takto nachádzame odľahlé hodnoty tradičným spôsobom.

Vieme tiež, že máme jednu odľahlú hodnotu ako najvyšší bod v našich údajoch. Aby sa to zohľadnilo, druhý riadok uvádza, že dátové body, ktoré sú vyššie ako q3 + 1,5 * iqr , sa tiež považujú za odľahlé hodnoty. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Vráťte túto množinu údajov a použite funkciu odľahlé hodnoty (df, 'Používatelia') . Potom kliknite na tlačidlo OK.

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Zobrazí sa súhrnná tabuľka podobná tej, ktorú sme mali predtým. 

Ak prejdeme na tablu Aplikované kroky a klikneme na položku Zmenený typ1 , dostaneme stĺpce Tradičné odľahlé hodnoty a Detekcia anomálií vedľa seba, pričom druhý z nich používa 1 a -1 na označenie odľahlých hodnôt a nie.

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Keď však používame dátumy v Pythone, môžu sa zdať zmätené. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Čo môžeme urobiť, je vytvoriť ďalší stĺpec pomocou Indexu z Pridať stĺpec .

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Potom pridajte Index do predchádzajúceho stĺpca pomocou Zlúčiť , aby sme zachovali všetky informácie v tomto pôvodnom stĺpci/množine údajov. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Keď máme všetko pohromade, môžeme spustiť náš kód a aktualizovať naše vizuály. Pamätajte, že sme zmenili kontamináciu odľahlej hodnoty z 0,5 na 0,1, takže by sme mali vidieť, že táto časť grafu sa dosť zmenšila. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Vráťte sa k vizuálom a kliknite na Použiť zmeny. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Všimnite si, ako zisťovanie anomálií prešlo z 32,56 % až na 11,63 % našich údajov. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Ako vidíme v našich výsledkoch, je to dobrý spôsob, ako optimalizovať detekciu odľahlých hodnôt. 

Pamätajte tiež, že keď ľudia používajú tradičnú metódu, môžu použiť hodnoty nižšie ako 1,5, ale 1,5 x IQR je napriek tomu tradičný spôsob. 

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone

Izolačný lesný algoritmus pre detekciu odľahlých hodnôt v Pythone




Záver

Použitím algoritmu Isolation Forest môžeme ľahko identifikovať a vylúčiť akékoľvek neobvyklé pozorovania z nášho súboru údajov, čím sa zlepší presnosť našej analýzy. Tento návod poskytuje podrobný návod, ako používať algoritmus Isolation Forest na detekciu odľahlých hodnôt pomocou Pythonu, čo by vám malo pomôcť začať s jeho implementáciou vo vašich vlastných projektoch.

To, čo sme urobili, bol veľmi jednoduchý kód na nájdenie anomálií. Tento algoritmus môžete ďalej optimalizovať úpravou kontaminácie a množstva ďalších premenných, ktoré sa môžete naučiť prostredníctvom kódovej stránky. 

Všetko najlepšie,


Vytvoření tabulky data v LuckyTemplates

Vytvoření tabulky data v LuckyTemplates

Zjistěte, proč je důležité mít vyhrazenou tabulku s daty v LuckyTemplates, a naučte se nejrychlejší a nejefektivnější způsob, jak toho dosáhnout.

LuckyTemplates Mobile Reporting Tipy a techniky

LuckyTemplates Mobile Reporting Tipy a techniky

Tento stručný návod zdůrazňuje funkci mobilního hlášení LuckyTemplates. Ukážu vám, jak můžete efektivně vytvářet přehledy pro mobily.

Profesionální servisní analytické zprávy v LuckyTemplates

Profesionální servisní analytické zprávy v LuckyTemplates

V této ukázce LuckyTemplates si projdeme sestavy ukazující profesionální analýzy služeb od firmy, která má více smluv a zákaznických vztahů.

Aktualizácie Microsoft Power Platform | Microsoft Ignite 2021

Aktualizácie Microsoft Power Platform | Microsoft Ignite 2021

Pozrite si kľúčové aktualizácie pre Power Apps a Power Automate a ich výhody a dôsledky pre platformu Microsoft Power Platform.

Bežné funkcie SQL: Prehľad

Bežné funkcie SQL: Prehľad

Objavte niektoré bežné funkcie SQL, ktoré môžeme použiť, ako napríklad reťazec, dátum a niektoré pokročilé funkcie na spracovanie alebo manipuláciu s údajmi.

Vytvoření šablony LuckyTemplates: Průvodce a tipy

Vytvoření šablony LuckyTemplates: Průvodce a tipy

V tomto tutoriálu se naučíte, jak vytvořit dokonalou šablonu LuckyTemplates, která je nakonfigurována podle vašich potřeb a preferencí.

Parametry pole a malé násobky v LuckyTemplates

Parametry pole a malé násobky v LuckyTemplates

V tomto blogu si ukážeme, jak vrstvit parametry pole s malými násobky, abychom vytvořili neuvěřitelně užitečné přehledy a vizuály.

LuckyTemplates Rank a vlastní seskupení

LuckyTemplates Rank a vlastní seskupení

V tomto blogu se dozvíte, jak používat funkce hodnocení LuckyTemplates a vlastní seskupování k segmentaci ukázkových dat a jejich seřazení podle kritérií.

Zobrazení kumulativního součtu pouze do určitého data v LuckyTemplates

Zobrazení kumulativního součtu pouze do určitého data v LuckyTemplates

V tomto tutoriálu se budu zabývat konkrétní technikou, jak zobrazit kumulativní součet pouze do určitého data ve vašich vizuálech v LuckyTemplates.

Bullet Charts: Pokročilé vlastní vizuální prvky pro LuckyTemplates

Bullet Charts: Pokročilé vlastní vizuální prvky pro LuckyTemplates

Naučte se vytvářet a přizpůsobovat Bullet grafy v LuckyTemplates, které se používají hlavně pro měření výkonu oproti cílovým nebo předchozím rokům.