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,


Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Zistite, ako stiahnuť a nainštalovať DAX Studio a Tabular Editor 3 a ako ich nakonfigurovať na použitie v LuckyTemplates a v Exceli.

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

Tento blog obsahuje vizualizáciu Shape Map pre priestorovú analýzu v LuckyTemplates. Ukážem vám, ako môžete efektívne využiť túto vizualizáciu s jej funkciami a prvkami.

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

V tomto návode predstavujem jedinečný nápad týkajúci sa finančného výkazníctva, ktorý spočíva v prideľovaní výsledkov na vopred určené šablóny tabuliek v rámci LuckyTemplates.

DAX měří v LuckyTemplates pomocí Measure Branching

DAX měří v LuckyTemplates pomocí Measure Branching

Vytvářejte míry DAX v LuckyTemplates pomocí existujících mír nebo vzorců. Tomu říkám technika větvení opatření.

Najvýkonnejšie volanie funkcie v LuckyTemplates

Najvýkonnejšie volanie funkcie v LuckyTemplates

V tomto blogu preskúmajte množinu údajov LuckyTemplates, najvýkonnejšie volanie funkcií, ktoré vám prináša tisíce funkcií M a DAX na dosah ruky.

Techniky modelovania údajov na organizáciu opatrení DAX

Techniky modelovania údajov na organizáciu opatrení DAX

V dnešnom návode sa podelím o niekoľko techník modelovania údajov o tom, ako lepšie usporiadať vaše merania DAX pre efektívnejší pracovný tok.

LuckyTemplates Financial Dashboard: Kompletné tipy na prispôsobenie tabuľky

LuckyTemplates Financial Dashboard: Kompletné tipy na prispôsobenie tabuľky

LuckyTemplates je skvelý nástroj pre finančné výkazníctvo. Tu je návod, ako vytvoriť prispôsobené tabuľky pre váš finančný dashboard LuckyTemplates.

Osvedčené postupy toku jazyka Power Query

Osvedčené postupy toku jazyka Power Query

V tomto návode sa bude diskutovať o toku jazyka Power Query a o tom, ako môže pomôcť vytvoriť hladkú a efektívnu zostavu údajov.

LuckyTemplates vlastní ikony | Vizualizační technika PBI

LuckyTemplates vlastní ikony | Vizualizační technika PBI

Budu diskutovat o jedné z mých oblíbených technik kolem vlastních ikon LuckyTemplates, která používá vlastní ikony dynamickým způsobem ve vizuálech LuckyTemplates.

Vytváření tabulek LuckyTemplates pomocí funkce UNION & ROW

Vytváření tabulek LuckyTemplates pomocí funkce UNION & ROW

V tomto blogu vám ukážu, jak můžete vytvořit tabulky LuckyTemplates pomocí vzorce, který kombinuje funkci UNION a funkci ROW.