Isolation Forest Algoritm För Outlier Detektion i Python

Outlier-detektering är en viktig uppgift inom området maskininlärning. Den används för att identifiera ovanliga observationer eller datapunkter som avviker från datasetets allmänna trend. En effektiv algoritm för detektering av extremvärden är algoritmen  Isolation Forest .

I dagens blogg kommer vi att täcka grunderna i Isolation Forest-algoritmen och demonstrera hur man använder den för att upptäcka extremvärden i en datauppsättning med hjälp av . Du kan se hela videon av denna handledning längst ner på den här bloggen .

Innehållsförteckning

Isolation Forest Algorithm vs Box Plot Method 

Nedan visas två bilder för avvikande upptäckt. Lägg märke till de betydande skillnaderna i den visuella representationen när du använder den jämfört med när Isolation Forest ML-modellen för avvikande upptäckt används. 

Isolation Forest Algoritm För Outlier Detektion i Python

I Isolation Forest ML-modellen är andelen extremvärden som detekteras av IS Anomaly Detection-algoritmen 32,56 %. Med samma algoritm faller de återstående 67,44% av datan inom normalområdet, vilket är ganska känsligt. Vårt mål är att finjustera denna känslighet med . 

Isolation Forest Algoritm För Outlier Detektion i Python

Den traditionella metoden för att upptäcka avvikelser

Det traditionella sättet att hitta en outlier är att använda en boxplotmetod . I den här metoden använder vi IQR för att hitta vad som faller utanför det förväntade intervallet för data. 

Isolation Forest Algoritm För Outlier Detektion i Python

I det här exemplet är den här enstaka punkten ovanför morrhåren vår avvikelse.

Isolation Forest Algoritm För Outlier Detektion i Python

Om vi ​​översätter den här visuella grafen till ett cirkeldiagram får vi denna speciella extremvärde som motsvarar 2,33 % av den totala datan. 

Isolation Forest Algoritm För Outlier Detektion i Python

I den här bloggen kommer vi att lära oss hur man använder Isolation Forest ML-metoden, finjustera den för att matcha den traditionella metoden och öka eller minska dess känslighet.

Datauppsättningen för isoleringsskogsalgoritm

Öppna vår datauppsättning i LuckyTemplates. Klicka sedan på Transformera data. 

Isolation Forest Algoritm För Outlier Detektion i Python

Vår datauppsättning för denna handledning kommer att dyka upp. Den innehåller Datum , antal användare , Index och Isolation Forest Outlier med utgång 1 för normalintervallet och -1 för extremvärden. 

Vi har också en kolumn för Traditional Outlier och en villkorlig kolumn med titeln IS Anomaly Detection som återspeglar Isolation Forest Outlier. 

Isolation Forest Algoritm För Outlier Detektion i Python

Vår andra fråga visar vår dataram som vi lär oss hur man sätter ihop allt. 

Isolation Forest Algoritm För Outlier Detektion i Python

Pythonkoderna

På rutan Egenskaper kan vi se våra två körande skript. Vi skapar Isolation Forest-utgången med ett av dessa skript och genererar den traditionella outliern med den andra. 

Isolation Forest Algoritm För Outlier Detektion i Python

Isolation Forest Algoritm Python Code

Klicka på Kör Python-skript för att se koden. 

Isolation Forest Algoritm För Outlier Detektion i Python

I denna Python-kod importerar vi som pd och använd något som heter Isolation Forest. 

Isolation Forest Algoritm För Outlier Detektion i Python

En isoleringsskog är en trädbaserad modell som fattar beslut baserat på en trädstruktur och sedan avgör om det är en outlier eller inte. Vi kallar det för en ensemblemodell eftersom den använder två olika metoder för att hitta en viss extremvärde. 

Vi ersätter också datasetvariabeln , som håller vår datauppsättning som standard, som df

Isolation Forest Algoritm För Outlier Detektion i Python

Med tanke på vår datauppsättning kommer vi inte att behöva de två raderna med koder som är markerade nedan så vi kan bara ta bort dessa rader. 

Isolation Forest Algoritm För Outlier Detektion i Python

Det vi gör är att instansiera modellen.

Spara modellen som IsolationForest och låt modellen lära sig data med användare. Skapa sedan en ny kolumn som heter Anomaly Detection som kommer att gå tillbaka över all data som den lär sig och förutsäga vilken som ska vara en avvikare eller inte. 

Isolation Forest Algoritm För Outlier Detektion i Python

För denna funktion är standardinställningen för kontaminering inställd på 0,5 . Således är den superkänslig för tillfället och kommer att leta efter många extremvärden. Det är därför vi i vårt cirkeldiagram tidigare har ett mycket högt intervall av extremvärden på 32,56%. 

Isolation Forest Algoritm För Outlier Detektion i Python

För att göra det mindre känsligt kan vi lägga till kontaminering = .1 i IsolationForest -funktionen.

Isolation Forest Algoritm För Outlier Detektion i Python

Slutligen, återställ indexet och klicka på OK.

Resultatet kommer att visa en sammanfattningstabell. Gå till rutan Tillämpade steg och klicka på df.

Isolation Forest Algoritm För Outlier Detektion i Python

I utgången kan vi hitta extremvärdena under kolumnen  Anomaly Detection .

Isolation Forest Algoritm För Outlier Detektion i Python

Vi vill också se hur den presterar vid sidan av den traditionella avvikaren. 

Traditionell Outlier Python-kod

Vi kör ett annat Python-skript som i det här exemplet är Kör Python-skript1.

Isolation Forest Algoritm För Outlier Detektion i Python

Denna kod lägger till en outlier-funktion med den första och tredje kvartilen. När vi subtraherar q1 från q3 får vi Interquartile Range (IQR)

Isolation Forest Algoritm För Outlier Detektion i Python

De följande två raderna ställer villkoren för extremvärdena. Den första raden säger att allt mindre än 1,5 * iqr anses vara negativa eller lägre extremvärden. Det är också så vi hittar extremvärden på traditionellt sätt.

Vi vet också att vi har en extremvärde som högsta punkt i vår data. För att ta hänsyn till det anger den andra raden att datapunkter som är högre än q3 + 1,5 * iqr också anses vara extremvärden. 

Isolation Forest Algoritm För Outlier Detektion i Python

Returnera den datamängden och använd funktionen outliers(df, 'Users') . Klicka sedan på OK.

Isolation Forest Algoritm För Outlier Detektion i Python

En sammanfattningstabell liknande den vi har tidigare kommer att dyka upp. 

Om vi ​​går till rutan Tillämpade steg och klickar på Ändrad typ1 , får vi kolumnerna Traditional Outlier och Anomaly Detection sida vid sida, där de senare använder 1 och -1 för att beteckna extremvärden och inte.

Isolation Forest Algoritm För Outlier Detektion i Python

Men när vi använder datum med Python kan de verka trassliga. 

Isolation Forest Algoritm För Outlier Detektion i Python

Vad vi kan göra är att skapa en extra kolumn med hjälp av indexet från Lägg till kolumn .

Isolation Forest Algoritm För Outlier Detektion i Python

Lägg sedan till Index i föregående kolumn med Merge , så att vi kan bevara all information i den ursprungliga kolumnen/datauppsättningen. 

Isolation Forest Algoritm För Outlier Detektion i Python

När vi har samlat allt kan vi köra vår kod och uppdatera våra bilder. Kom ihåg att vi ändrade kontamineringen av extremvärdet från 0,5 till 0,1, så vi borde se denna del av grafen krympa en hel del. 

Isolation Forest Algoritm För Outlier Detektion i Python

Gå tillbaka till bilderna och klicka på Verkställ ändringar. 

Isolation Forest Algoritm För Outlier Detektion i Python

Lägg märke till hur anomalidetekteringen gick hela vägen från 32,56 % ner till 11,63 % av vår data. 

Isolation Forest Algoritm För Outlier Detektion i Python

Som vi ser i våra resultat är detta ett bra sätt att optimera vår detektering av extremvärden. 

Kom också ihåg att när människor använder den traditionella metoden kan de använda värden lägre än 1,5, men 1,5 x IQR är det traditionella sättet ändå. 

Isolation Forest Algoritm För Outlier Detektion i Python

Isolation Forest Algoritm För Outlier Detektion i Python




Slutsats

Genom att använda Isolation Forest-algoritmen kan vi enkelt identifiera och utesluta ovanliga observationer från vår datauppsättning, vilket förbättrar noggrannheten i vår analys. Den här handledningen har gett en steg-för-steg-guide om hur du använder Isolation Forest-algoritmen för att detektera avvikelser med Python, vilket bör hjälpa dig att komma igång med att implementera den i dina egna projekt.

Det vi gjorde var en väldigt enkel kod för att hitta anomalier. Du kan optimera den algoritmen ytterligare genom att modifiera kontaminering och en mängd andra variabler som du kan lära dig via teckentabellen. 

Med vänliga hälsningar,


Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.

Extrahera LuckyTemplates-teman och bilder från PBIX

Extrahera LuckyTemplates-teman och bilder från PBIX

Lär dig hur du tar isär en PBIX-fil för att extrahera LuckyTemplates-teman och bilder från bakgrunden och använda den för att skapa din rapport!

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

Python i LuckyTemplates: Hur man installerar och ställer in

Python i LuckyTemplates: Hur man installerar och ställer in

Lär dig hur du installerar programmeringsspråket Python i LuckyTemplates och hur du använder dess verktyg för att skriva koder och visa bilder.

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Lär dig hur du beräknar dynamiska vinstmarginaler vid sidan av LuckyTemplates och hur du kan få fler insikter genom att gräva djupare i resultaten.

Sortering av datumtabellkolumner i LuckyTemplates

Sortering av datumtabellkolumner i LuckyTemplates

Lär dig hur du sorterar fälten från en utökad datumtabells kolumner korrekt. Detta är en bra strategi att göra för svåra fält.

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

I den här artikeln går jag igenom hur du kan hitta dina toppprodukter per region med hjälp av DAX-beräkningar i LuckyTemplates, inklusive TOPN- och CALCULATE-funktionerna.

Skräpdimension: Vad är det och varför det är allt annat än skräp

Skräpdimension: Vad är det och varför det är allt annat än skräp

Lär dig hur du använder en skräpdimension för flaggor med låg kardinalitet som du vill infoga i din datamodell på ett effektivt sätt.