Isolation Forest Algoritme for Outlier-detektion i Python

Outlier-detektion er en vigtig opgave inden for maskinlæring. Det bruges til at identificere usædvanlige observationer eller datapunkter, der afviger fra datasættets generelle tendens. En effektiv algoritme til outlier-detektion er Isolation Forest- algoritmen. 

I dagens blog vil vi dække det grundlæggende i Isolation Forest-algoritmen og demonstrere, hvordan man bruger den til at opdage outliers i et datasæt ved hjælp af . Du kan se den fulde video af denne tutorial nederst på denne blog .

Indholdsfortegnelse

Isolation Forest Algorithm vs Box Plot Method 

Nedenfor er vist to billeder til afvigende detektering. Læg mærke til de betydelige forskelle i den visuelle repræsentation, når du bruger, sammenlignet med, når Isolation Forest ML-modellen til Outlier-detektion bruges. 

Isolation Forest Algoritme for Outlier-detektion i Python

I Isolation Forest ML-modellen er procentdelen af ​​outliers detekteret af IS Anomaly Detection-algoritmen 32,56 %. Ved at bruge den samme algoritme falder de resterende 67,44% af dataene inden for normalområdet, hvilket er ret følsomt. Vores mål er at finjustere denne følsomhed ved hjælp af . 

Isolation Forest Algoritme for Outlier-detektion i Python

Den traditionelle metode til påvisning af outlier

Den traditionelle måde at finde en outlier på er ved at bruge en box plot metode . I denne metode bruger vi IQR til at finde, hvad der falder uden for dataens forventede rækkevidde. 

Isolation Forest Algoritme for Outlier-detektion i Python

I dette eksempel er dette enkelte punkt over knurhåren vores outlier.

Isolation Forest Algoritme for Outlier-detektion i Python

Hvis vi oversætter denne visuelle graf til et cirkeldiagram, får vi denne ene særlige udligger, som svarer til 2,33 % af de samlede data. 

Isolation Forest Algoritme for Outlier-detektion i Python

I denne blog vil vi lære at bruge Isolation Forest ML-metoden, finjustere den til at matche den traditionelle metode og øge eller mindske dens følsomhed.

Datasættet til isolationsskovsalgoritme

Åbn vores datasæt i LuckyTemplates. Klik derefter på Transformer data. 

Isolation Forest Algoritme for Outlier-detektion i Python

Vores datasæt til denne tutorial vil dukke op. Den indeholder datoen , antallet af brugere , indekset og isolationsskovudliggeren med output 1 for normalområdet og -1 for outliers. 

Vi har også en kolonne for Traditional Outlier og en betinget kolonne med titlen IS Anomaly Detection, der afspejler Isolation Forest Outlier. 

Isolation Forest Algoritme for Outlier-detektion i Python

Vores anden forespørgsel viser vores dataramme, som vi lærer at sætte alt sammen. 

Isolation Forest Algoritme for Outlier-detektion i Python

Python-koderne

På ruden Egenskaber kan vi se vores to kørende scripts. Vi opretter Isolation Forest-outputtet med et af disse scripts og genererer den traditionelle outlier med den anden. 

Isolation Forest Algoritme for Outlier-detektion i Python

Isolation Forest Algorithm Python Code

Klik på Kør Python-script for at se koden. 

Isolation Forest Algoritme for Outlier-detektion i Python

I denne Python-kode importerer vi som pd og brug noget der hedder Isolation Forest. 

Isolation Forest Algoritme for Outlier-detektion i Python

En isolationsskov er en træbaseret model, som træffer beslutninger baseret på en træstruktur og derefter beslutter, om den er en outlier eller ej. Vi kalder det en ensemblemodel, fordi den bruger to forskellige metoder til at finde en bestemt afviger. 

Vi erstatter også datasætvariablen , som holder vores datasæt som standard, som df

Isolation Forest Algoritme for Outlier-detektion i Python

I betragtning af vores datasæt har vi ikke brug for de to linjer med koder, der er fremhævet nedenfor, så vi kan bare slette disse linjer. 

Isolation Forest Algoritme for Outlier-detektion i Python

Det, vi gør, er at instansiere modellen.

Gem modellen som IsolationForest og lad modellen lære dataene med brugere. Opret derefter en ny kolonne kaldet Anomaly Detection , som vil gå tilbage over alle de data, den lærer, og forudsige, hvilken en der skal være en outlier eller ej. 

Isolation Forest Algoritme for Outlier-detektion i Python

For denne funktion er standarden for kontaminering sat til 0,5 . Således er den super følsom i øjeblikket og vil lede efter en masse afvigere. Derfor har vi i vores cirkeldiagram tidligere et meget højt interval af outliers på 32,56%. 

Isolation Forest Algoritme for Outlier-detektion i Python

For at gøre det mindre følsomt kan vi tilføje kontaminering = .1 i IsolationForest -funktionen.

Isolation Forest Algoritme for Outlier-detektion i Python

Til sidst skal du nulstille indekset og klikke på OK.

Resultatet vil vise en oversigtstabel. Gå til ruden Anvendte trin , og klik på df.

Isolation Forest Algoritme for Outlier-detektion i Python

I outputtet kan vi finde outliers under kolonnen Anomaly Detection

Isolation Forest Algoritme for Outlier-detektion i Python

Vi vil også gerne se, hvordan den klarer sig ved siden af ​​den traditionelle outlier. 

Traditionel Outlier Python-kode

Vi kører et andet Python-script, som i dette eksempel er Run Python-script1.

Isolation Forest Algoritme for Outlier-detektion i Python

Denne kode tilføjer en outlier-funktion ved hjælp af den første og tredje kvartil. Når vi trækker q1 fra q3 , får vi Interquartile Range (IQR)

Isolation Forest Algoritme for Outlier-detektion i Python

De næste to linjer sætter betingelserne for outlierne. Den første linje siger, at alt mindre end 1,5 * iqr betragtes som negative eller lavere outliers. Det er også sådan, vi finder outliers på traditionel vis.

Vi ved også, at vi har én afviger som det højeste punkt i vores data. For at tage højde for det, angiver den anden linje, at datapunkter, der er højere end q3 + 1,5 * iqr , også betragtes som outliers. 

Isolation Forest Algoritme for Outlier-detektion i Python

Returner dette datasæt og brug funktionen outliers(df, 'Brugere') . Klik derefter på OK.

Isolation Forest Algoritme for Outlier-detektion i Python

En oversigtstabel svarende til det, vi har tidligere, vises. 

Hvis vi går til ruden Anvendte trin og klikker på Ændret type1 , får vi Traditional Outlier og Anomaly Detection -kolonner side om side, hvor sidstnævnte bruger 1 og -1 til at angive outliers og ikke.

Isolation Forest Algoritme for Outlier-detektion i Python

Men når vi bruger datoer med Python, kan de virke rodet. 

Isolation Forest Algoritme for Outlier-detektion i Python

Det, vi kan gøre, er at oprette en ekstra kolonne ved hjælp af indekset fra Tilføj kolonne .

Isolation Forest Algoritme for Outlier-detektion i Python

Tilføj derefter Index til den forrige kolonne med Merge , så vi kan bevare alle oplysningerne i den oprindelige kolonne/datasæt. 

Isolation Forest Algoritme for Outlier-detektion i Python

Når vi har alt sammen, kan vi køre vores kode og opdatere vores billeder. Husk, at vi ændrede kontamineringen af ​​outlieren fra 0,5 til 0,1, så vi burde se denne del af grafen krympe en del. 

Isolation Forest Algoritme for Outlier-detektion i Python

Gå tilbage til det visuelle, og klik på Anvend ændringer. 

Isolation Forest Algoritme for Outlier-detektion i Python

Læg mærke til, hvordan anomalidetektionen gik hele vejen fra 32,56 % ned til 11,63 % af vores data. 

Isolation Forest Algoritme for Outlier-detektion i Python

Som vi ser i vores resultater, er dette en god måde at optimere vores outlier-detektion på. 

Husk også, at når folk bruger den traditionelle metode, kan de bruge værdier lavere end 1,5, men 1,5 x IQR er ikke desto mindre den traditionelle måde. 

Isolation Forest Algoritme for Outlier-detektion i Python

Isolation Forest Algoritme for Outlier-detektion i Python




Konklusion

Ved at bruge Isolation Forest-algoritmen kan vi nemt identificere og udelukke usædvanlige observationer fra vores datasæt og dermed forbedre nøjagtigheden af ​​vores analyse. Denne vejledning har givet en trin-for-trin guide til, hvordan du bruger Isolation Forest-algoritmen til afvigende detektering ved hjælp af Python, som skulle hjælpe dig i gang med at implementere den i dine egne projekter.

Det, vi gjorde, var en meget nem kode til at finde uregelmæssigheder. Du kan yderligere optimere denne algoritme ved at ændre forurening og en lang række andre variabler, som du kan lære gennem tegntabel. 

Alt det bedste,


Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.

Udpakning af LuckyTemplates-temaer og -billeder fra PBIX

Udpakning af LuckyTemplates-temaer og -billeder fra PBIX

Lær, hvordan du adskiller en PBIX-fil for at udtrække LuckyTemplates-temaer og -billeder fra baggrunden og bruge den til at oprette din rapport!

Excel Formler Snydeark: Mellemvejledning

Excel Formler Snydeark: Mellemvejledning

Excel Formler Snydeark: Mellemvejledning

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

Python i LuckyTemplates: Sådan installeres og konfigureres

Python i LuckyTemplates: Sådan installeres og konfigureres

Lær, hvordan du installerer programmeringssproget Python i LuckyTemplates, og hvordan du bruger dets værktøjer til at skrive koder og vise billeder.

Beregning af dynamiske fortjenestemargener – nem analyse af LuckyTemplates med DAX

Beregning af dynamiske fortjenestemargener – nem analyse af LuckyTemplates med DAX

Lær, hvordan du beregner dynamiske fortjenstmargener ved siden af ​​LuckyTemplates, og hvordan du kan få mere indsigt ved at grave dybere ned i resultaterne.

Sortering af datotabelkolonner i LuckyTemplates

Sortering af datotabelkolonner i LuckyTemplates

Lær, hvordan du sorterer felterne fra kolonner med udvidet datotabel korrekt. Dette er en god strategi at gøre for vanskelige felter.

Find dine topprodukter for hver region i LuckyTemplates ved hjælp af DAX

Find dine topprodukter for hver region i LuckyTemplates ved hjælp af DAX

I denne artikel gennemgår jeg, hvordan du kan finde dine topprodukter pr. region ved hjælp af DAX-beregninger i LuckyTemplates, herunder funktionerne TOPN og CALCUATE.

Junk Dimension: Hvad er det, og hvorfor det er alt andet end junk

Junk Dimension: Hvad er det, og hvorfor det er alt andet end junk

Lær, hvordan du bruger en uønsket dimension til flag med lav kardinalitet, som du ønsker at inkorporere i din datamodel på en effektiv måde.