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,

Leave a Comment

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.

Oprettelse af en datotabel i LuckyTemplates

Oprettelse af en datotabel i LuckyTemplates

Find ud af, hvorfor det er vigtigt at have en dedikeret datotabel i LuckyTemplates, og lær den hurtigste og mest effektive måde at gøre det på.

LuckyTemplates Mobile Reporting Tips og teknikker

LuckyTemplates Mobile Reporting Tips og teknikker

Denne korte vejledning fremhæver LuckyTemplates mobilrapporteringsfunktion. Jeg vil vise dig, hvordan du kan udvikle rapporter effektivt til mobilenheder.

Professionelle serviceanalyserapporter i LuckyTemplates

Professionelle serviceanalyserapporter i LuckyTemplates

I denne LuckyTemplates Showcase gennemgår vi rapporter, der viser professionel serviceanalyse fra et firma, der har flere kontrakter og kundeengagementer.

Microsoft Power Platform-opdateringer | Microsoft Ignite 2021

Microsoft Power Platform-opdateringer | Microsoft Ignite 2021

Gå gennem de vigtigste opdateringer til Power Apps og Power Automate og deres fordele og implikationer for Microsoft Power Platform.

Almindelige SQL-funktioner: En oversigt

Almindelige SQL-funktioner: En oversigt

Opdag nogle almindelige SQL-funktioner, som vi kan bruge, såsom streng, dato og nogle avancerede funktioner til at behandle eller manipulere data.

LuckyTemplates skabelonoprettelse: Guide og tips

LuckyTemplates skabelonoprettelse: Guide og tips

I denne tutorial lærer du, hvordan du opretter din perfekte LuckyTemplates-skabelon, der er konfigureret til dine behov og præferencer.

Feltparametre og små multipler i LuckyTemplates

Feltparametre og små multipler i LuckyTemplates

I denne blog vil vi demonstrere, hvordan man lagdelte feltparametre med små multipler for at skabe utrolig nyttig indsigt og visuals.

LuckyTemplates-rangering og brugerdefineret gruppering

LuckyTemplates-rangering og brugerdefineret gruppering

I denne blog vil du lære, hvordan du bruger LuckyTemplates rangerings- og brugerdefinerede grupperingsfunktioner til at segmentere et eksempeldata og rangordne det efter kriterier.

Viser kun kumulativ total op til en bestemt dato i LuckyTemplates

Viser kun kumulativ total op til en bestemt dato i LuckyTemplates

I denne tutorial vil jeg dække en specifik teknik omkring, hvordan du kun viser Kumulativ Total op til en bestemt dato i dine visuals i LuckyTemplates.