Isolation Forest-algoritme voor detectie van uitschieters in Python

Isolation Forest-algoritme voor detectie van uitschieters in Python

Uitbijterdetectie is een belangrijke taak op het gebied van machine learning. Het wordt gebruikt om ongebruikelijke waarnemingen of datapunten te identificeren die afwijken van de algemene trend van de dataset. Een effectief algoritme voor het detecteren van uitschieters is het Isolation Forest- algoritme. 

In de blog van vandaag behandelen we de basisprincipes van het Isolation Forest-algoritme en demonstreren we hoe het kan worden gebruikt om uitschieters in een dataset te detecteren met behulp van Python . Je kunt de volledige video van deze tutorial onderaan deze blog bekijken .

Inhoudsopgave

Isolation Forest Algorithm versus Box Plot-methode 

Hieronder worden twee visuals weergegeven voor het detecteren van uitschieters. Let op de significante verschillen in de visuele weergave bij gebruik van de in vergelijking met wanneer het Isolation Forest ML-model voor uitbijterdetectie wordt gebruikt. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

In het Isolation Forest ML-model is het percentage uitbijters dat wordt gedetecteerd door het IS Anomaly Detection-algoritme 32,56%. Met hetzelfde algoritme valt de resterende 67,44% van de gegevens binnen het normale bereik, wat vrij gevoelig is. Ons doel is om deze gevoeligheid te verfijnen met behulp van Python

Isolation Forest-algoritme voor detectie van uitschieters in Python

De traditionele methode voor het detecteren van uitschieters

De traditionele manier om een ​​uitschieter te vinden is door gebruik te maken van een boxplotmethode . Bij deze methode gebruiken we de IQR om te vinden wat buiten het verwachte bereik van de gegevens valt. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

In dit voorbeeld is dit enkele punt boven de snorhaar onze uitschieter.

Isolation Forest-algoritme voor detectie van uitschieters in Python

Als we deze visuele grafiek vertalen naar een cirkeldiagram, krijgen we deze ene uitschieter die overeenkomt met 2,33% van de totale gegevens. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

In deze blog zullen we leren hoe we de Isolation Forest ML-methode kunnen gebruiken, deze kunnen afstemmen op de traditionele methode en de gevoeligheid ervan kunnen verhogen of verlagen.

De gegevensset voor het algoritme van het isolatiebos

Open onze dataset in LuckyTemplates. Klik vervolgens op Gegevens transformeren. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

Onze dataset voor deze tutorial zal verschijnen. Het bevat de Date , number of Users , Index en Isolation Forest Outlier met output 1 voor het normale bereik en -1 voor outliers. 

We hebben ook een kolom voor Traditional Outlier en een voorwaardelijke kolom met de titel IS Anomaly Detection die de Isolation Forest Outlier weergeeft. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

Onze tweede query toont ons dataframe waarin we zullen leren hoe we alles in elkaar kunnen zetten. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

De Python-codes

In het deelvenster Eigenschappen kunnen we onze twee lopende Python- scripts zien. We maken de Isolation Forest-uitvoer met een van deze Python- scripts en genereren de traditionele uitschieter met de andere. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

Isolatie Forest Algoritme Python Code

Klik op Python-script uitvoeren om de code te bekijken. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

In deze Python-code importeren we panda's als pd en gebruiken we iets genaamd Isolation Forest. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

Een Isolation Forest is een op bomen gebaseerd model dat beslissingen neemt op basis van een boomstructuur en vervolgens beslist of het een uitbijter is of niet. We noemen dat een ensemblemodel omdat het twee verschillende methoden gebruikt om een ​​bepaalde uitbijter te vinden. 

We vervangen ook de datasetvariabele , die onze dataset standaard bevat, als df

Isolation Forest-algoritme voor detectie van uitschieters in Python

Gezien onze dataset hebben we de twee hieronder gemarkeerde regels met codes niet nodig, dus we kunnen die regels gewoon verwijderen. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

Wat we doen is het model instantiëren.

Sla het model op als IsolationForest en laat het model de gegevens leren met gebruikers. Maak vervolgens een nieuwe kolom met de naam Anomaly Detection , die teruggaat op alle gegevens die het leert en voorspelt welke een uitbijter moet zijn of niet. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

Voor deze functie is de standaard voor vervuiling ingesteld op 0,5 . Het is dus op dit moment supergevoelig en zal op zoek gaan naar veel uitschieters. Daarom hebben we in ons cirkeldiagram eerder een zeer hoge reeks uitschieters van 32,56%. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

Om het minder gevoelig te maken, kunnen we contaminatie = .1 toevoegen in de IsolationForest -functie.

Isolation Forest-algoritme voor detectie van uitschieters in Python

Stel ten slotte de index opnieuw in en klik op OK.

Het resultaat toont een samenvattende tabel. Ga naar het deelvenster Toegepaste stappen en klik op df.

Isolation Forest-algoritme voor detectie van uitschieters in Python

In de uitvoer kunnen we de uitschieters vinden onder de kolom Anomaly Detection

Isolation Forest-algoritme voor detectie van uitschieters in Python

We willen ook zien hoe het presteert naast de traditionele uitbijter. 

Traditionele Outlier Python-code

We zullen een ander Python-script uitvoeren, in dit voorbeeld het Run Python-script1.

Isolation Forest-algoritme voor detectie van uitschieters in Python

Deze code voegt een uitbijterfunctie toe met behulp van het eerste en derde kwartiel. Als we q1 van q3 aftrekken , krijgen we de interkwartielafstand (IQR)

Isolation Forest-algoritme voor detectie van uitschieters in Python

De volgende twee regels bepalen de voorwaarden voor de uitschieters. De eerste regel zegt dat alles minder dan 1,5 * iqr als negatieve of lagere uitschieters wordt beschouwd . Zo vinden we ook op traditionele wijze uitschieters.

We weten ook dat we één uitschieter hebben als het hoogste punt in onze gegevens. Om daar rekening mee te houden, stelt de tweede regel dat gegevenspunten die hoger zijn dan q3 + 1,5 * iqr ook als uitschieters worden beschouwd. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

Retourneer die dataset en gebruik de functie outliers(df, 'Users') . Klik vervolgens op OK.

Isolation Forest-algoritme voor detectie van uitschieters in Python

Er verschijnt een samenvattende tabel die lijkt op wat we eerder hebben. 

Als we naar het paneel Applied Steps gaan en op Changed Type1 klikken , krijgen we de kolommen Traditional Outlier en Anomaly Detection naast elkaar, waarbij de laatste 1 en -1 gebruikt om outliers aan te duiden en niet.

Isolation Forest-algoritme voor detectie van uitschieters in Python

Wanneer we echter datums gebruiken met Python, kunnen ze er in de war uitzien. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

Wat we kunnen doen, is een extra kolom maken met behulp van de Index van de Kolom toevoegen .

Isolation Forest-algoritme voor detectie van uitschieters in Python

Voeg vervolgens Index toe aan de vorige kolom met Merge , zodat we alle informatie in die originele kolom/dataset kunnen behouden. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

Zodra we alles bij elkaar hebben, kunnen we onze code uitvoeren en onze visuals bijwerken. Onthoud dat we de verontreiniging van de uitbijter hebben gewijzigd van 0,5 in 0,1, dus we zouden dit deel van de grafiek behoorlijk moeten zien krimpen. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

Ga terug naar de visuals en klik op Wijzigingen toepassen. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

Merk op hoe de afwijkingsdetectie helemaal van 32,56% naar 11,63% van onze gegevens ging. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

Zoals we in onze resultaten zien, is dit een goede manier om onze uitbijterdetectie te optimaliseren. 

Onthoud ook dat wanneer mensen de traditionele methode gebruiken, ze waarden kunnen gebruiken die lager zijn dan 1,5, maar 1,5 x IQR is desalniettemin de traditionele manier. 

Isolation Forest-algoritme voor detectie van uitschieters in Python

Isolation Forest-algoritme voor detectie van uitschieters in Python


Uitbijterresultaten detecteren en presenteren in LuckyTemplates
Dynamische triggerpunten voor uitschieters creëren in LuckyTemplates
LuckyTemplates-functie voor afwijkingsdetectie: hoe het werkt

Conclusie

Door het Isolation Forest-algoritme te gebruiken, kunnen we ongebruikelijke waarnemingen eenvoudig identificeren en uitsluiten uit onze dataset, waardoor de nauwkeurigheid van onze analyse wordt verbeterd. Deze tutorial heeft een stapsgewijze handleiding gegeven over het gebruik van het Isolation Forest-algoritme voor detectie van uitschieters met behulp van Python, wat u zou moeten helpen om aan de slag te gaan met de implementatie ervan in uw eigen projecten.

Wat we deden was een heel gemakkelijke manier om onze Python- code te gebruiken om afwijkingen te vinden. Je kunt dat algoritme verder optimaliseren door besmetting en een groot aantal andere variabelen aan te passen die je kunt leren via de codepagina  van Python .

Al het beste,


Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Een RDS-bestand opslaan en laden in R

Een RDS-bestand opslaan en laden in R

Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.

First N Business Days Revisited – Een DAX-coderingstaaloplossing

First N Business Days Revisited – Een DAX-coderingstaaloplossing

In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.

Inleiding tot het filteren van context in LuckyTemplates

Inleiding tot het filteren van context in LuckyTemplates

In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.

Zakelijke rapportage met behulp van LuckyTemplates

Zakelijke rapportage met behulp van LuckyTemplates

Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten