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,


Skapa en datumtabell i LuckyTemplates

Skapa en datumtabell i LuckyTemplates

Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.

LuckyTemplates mobilrapporteringstips och tekniker

LuckyTemplates mobilrapporteringstips och tekniker

Denna korta handledning belyser LuckyTemplates mobilrapporteringsfunktion. Jag ska visa dig hur du kan utveckla rapporter effektivt för mobila enheter.

Professional Service Analytics-rapporter i LuckyTemplates

Professional Service Analytics-rapporter i LuckyTemplates

I denna LuckyTemplates Showcase går vi igenom rapporter som visar professionell serviceanalys från ett företag som har flera kontrakt och kundengagemang.

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Gå igenom de viktigaste uppdateringarna för Power Apps och Power Automate och deras fördelar och konsekvenser för Microsoft Power Platform.

Vanliga SQL-funktioner: En översikt

Vanliga SQL-funktioner: En översikt

Upptäck några vanliga SQL-funktioner som vi kan använda som sträng, datum och några avancerade funktioner för att bearbeta eller manipulera data.

LuckyTemplates Skapa mall: Guide och tips

LuckyTemplates Skapa mall: Guide och tips

I den här handledningen kommer du att lära dig hur du skapar din perfekta LuckyTemplates-mall som är konfigurerad efter dina behov och preferenser.

Fältparametrar och små multiplar i LuckyTemplates

Fältparametrar och små multiplar i LuckyTemplates

I den här bloggen kommer vi att visa hur man lager fältparametrar med små multiplar för att skapa otroligt användbara insikter och bilder.

LuckyTemplates Rank och anpassad gruppering

LuckyTemplates Rank och anpassad gruppering

I den här bloggen kommer du att lära dig hur du använder LuckyTemplates ranknings- och anpassade grupperingsfunktioner för att segmentera en exempeldata och rangordna den enligt kriterier.

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

I den här handledningen kommer jag att täcka en specifik teknik kring hur man visar Kumulativ total endast upp till ett specifikt datum i dina bilder i LuckyTemplates.

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Lär dig hur du skapar och anpassar punktdiagram i LuckyTemplates, som huvudsakligen används för att mäta prestanda mot mål eller tidigare år.