Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
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.
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 .
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.
In dit voorbeeld is dit enkele punt boven de snorhaar onze uitschieter.
Als we deze visuele grafiek vertalen naar een cirkeldiagram, krijgen we deze ene uitschieter die overeenkomt met 2,33% van de totale gegevens.
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.
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.
Onze tweede query toont ons dataframe waarin we zullen leren hoe we alles in elkaar kunnen zetten.
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.
Isolatie Forest Algoritme Python Code
Klik op Python-script uitvoeren om de code te bekijken.
In deze Python-code importeren we panda's als pd en gebruiken we iets genaamd Isolation Forest.
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 .
Gezien onze dataset hebben we de twee hieronder gemarkeerde regels met codes niet nodig, dus we kunnen die regels gewoon verwijderen.
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.
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%.
Om het minder gevoelig te maken, kunnen we contaminatie = .1 toevoegen in de IsolationForest -functie.
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.
In de uitvoer kunnen we de uitschieters vinden onder de kolom Anomaly Detection .
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.
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) .
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.
Retourneer die dataset en gebruik de functie outliers(df, 'Users') . Klik vervolgens op OK.
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.
Wanneer we echter datums gebruiken met Python, kunnen ze er in de war uitzien.
Wat we kunnen doen, is een extra kolom maken met behulp van de Index van de Kolom toevoegen .
Voeg vervolgens Index toe aan de vorige kolom met Merge , zodat we alle informatie in die originele kolom/dataset kunnen behouden.
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.
Ga terug naar de visuals en klik op Wijzigingen toepassen.
Merk op hoe de afwijkingsdetectie helemaal van 32,56% naar 11,63% van onze gegevens ging.
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.
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
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.
In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.
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.
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.
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.
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.
Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.
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