Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Die Erkennung von Ausreißern ist eine wichtige Aufgabe im Bereich des maschinellen Lernens. Es wird verwendet, um ungewöhnliche Beobachtungen oder Datenpunkte zu identifizieren, die vom allgemeinen Trend des Datensatzes abweichen. Ein effektiver Algorithmus zur Ausreißererkennung ist der Isolation Forest- Algorithmus. 

Im heutigen Blog werden wir die Grundlagen des Isolation Forest-Algorithmus behandeln und zeigen, wie man ihn zum Erkennen von Ausreißern in einem Datensatz mit Python verwendet . Das vollständige Video dieses Tutorials können Sie unten in diesem Blog ansehen .

Inhaltsverzeichnis

Isolation Forest-Algorithmus vs. Box-Plot-Methode 

Unten sind zwei visuelle Darstellungen zur Erkennung von Ausreißern dargestellt. Beachten Sie die erheblichen Unterschiede in der visuellen Darstellung bei Verwendung der im Vergleich zur Verwendung des Isolation Forest ML-Modells zur Ausreißererkennung. 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Im Isolation Forest ML-Modell beträgt der Prozentsatz der vom IS-Anomalieerkennungsalgorithmus erkannten Ausreißer 32,56 %. Bei Verwendung desselben Algorithmus liegen die verbleibenden 67,44 % der Daten im normalen Bereich, was sehr empfindlich ist. Unser Ziel ist es, diese Empfindlichkeit mithilfe von Python zu optimieren . 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Die traditionelle Methode zur Erkennung von Ausreißern

Der herkömmliche Weg, einen Ausreißer zu finden, ist die Verwendung einer Boxplot-Methode . Bei dieser Methode verwenden wir den IQR, um herauszufinden, was außerhalb des erwarteten Datenbereichs liegt. 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

In diesem Beispiel ist dieser einzelne Punkt über dem Whisker unser Ausreißer.

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Wenn wir dieses visuelle Diagramm in ein Kreisdiagramm übersetzen, erhalten wir diesen einen bestimmten Ausreißer, der 2,33 % der Gesamtdaten  entspricht .

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

In diesem Blog erfahren Sie, wie Sie die Isolation Forest ML-Methode verwenden, sie an die traditionelle Methode anpassen und ihre Empfindlichkeit erhöhen oder verringern.

Der Datensatz für den Isolation Forest-Algorithmus

Öffnen Sie unseren Datensatz in LuckyTemplates. Klicken Sie dann auf Daten transformieren. 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Unser Datensatz für dieses Tutorial wird angezeigt. Es enthält Datum , Anzahl der Benutzer , Index und Isolationswald-Ausreißer mit der Ausgabe 1 für den Normalbereich und -1 für Ausreißer. 

Wir haben auch eine Spalte für Traditional Outlier und eine bedingte Spalte mit dem Titel IS Anomaly Detection, die den Isolation Forest Outlier widerspiegelt. 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Unsere zweite Abfrage zeigt unseren Datenrahmen, in dem wir lernen, wie man alles zusammenfügt. 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Die Python-Codes

Im Eigenschaftenbereich können wir unsere beiden laufenden Python- Skripte sehen. Wir erstellen die Isolation Forest-Ausgabe mit einem dieser Python- Skripte und generieren mit dem anderen den traditionellen Ausreißer. 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Python-Code für den Isolationswaldalgorithmus

Klicken Sie auf Python-Skript ausführen , um den Code anzuzeigen. 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

In diesem Python-Code importieren wir Pandas als pd und verwenden etwas namens Isolation Forest. 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Ein Isolation Forest ist ein baumbasiertes Modell, das Entscheidungen auf der Grundlage einer Baumstruktur trifft und dann entscheidet, ob es sich um einen Ausreißer handelt oder nicht. Wir nennen das ein Ensemble-Modell, weil es zwei verschiedene Methoden verwendet, um einen bestimmten Ausreißer zu finden. 

Wir ersetzen auch die Datensatzvariable , die standardmäßig unseren Datensatz enthält, durch df

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Aufgrund unseres Datensatzes benötigen wir die beiden unten hervorgehobenen Codezeilen nicht, sodass wir diese Zeilen einfach löschen können. 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Wir instanziieren das Modell.

Speichern Sie das Modell als IsolationForest und lassen Sie das Modell die Daten mit Benutzern lernen . Erstellen Sie dann eine neue Spalte mit dem Namen „Anomaly Detection“ , die alle gelernten Daten durchgeht und vorhersagt, welche Daten ein Ausreißer sein sollten oder nicht. 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Für diese Funktion ist der Standardwert für die Kontamination auf 0,5 eingestellt . Daher ist es im Moment sehr empfindlich und wird nach vielen Ausreißern suchen. Aus diesem Grund haben wir in unserem Tortendiagramm zuvor mit 32,56 % eine sehr hohe Spanne an Ausreißern. 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Um es weniger empfindlich zu machen, können wir in der IsolationForest -Funktion „contamination = .1“ hinzufügen .

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Setzen Sie abschließend den Index zurück und klicken Sie auf OK.

Das Ergebnis wird in einer Übersichtstabelle angezeigt. Gehen Sie zum Bereich „Angewandte Schritte“ und klicken Sie auf df.

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

In der Ausgabe finden wir die Ausreißer in der Spalte „Anomalieerkennung“

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Wir wollen auch sehen, wie es im Vergleich zum traditionellen Ausreißer abschneidet. 

Traditioneller Ausreißer-Python-Code

Wir führen ein weiteres Python-Skript aus, in diesem Beispiel „ Run Python script1“.

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Dieser Code fügt eine Ausreißerfunktion hinzu, die das erste und dritte Quartil verwendet. Wenn wir q1 von q3 subtrahieren , erhalten wir den Interquartilbereich (IQR)

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Die nächsten beiden Zeilen legen die Bedingungen für die Ausreißer fest. Die erste Zeile besagt, dass alles unter 1,5 * iqr als negativ oder als geringere Ausreißer gilt . Auf diese Weise finden wir auch auf herkömmliche Weise Ausreißer.

Wir wissen auch, dass wir einen Ausreißer als höchsten Punkt in unseren Daten haben. Um dies zu berücksichtigen, heißt es in der zweiten Zeile, dass Datenpunkte, die höher als q3 + 1,5 * iqr sind , ebenfalls als Ausreißer gelten. 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Geben Sie diesen Datensatz zurück und verwenden Sie die Funktion outliers(df, 'Users') . Klicken Sie dann auf OK.

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Es erscheint eine Übersichtstabelle, die der zuvor gezeigten ähnelt. 

Wenn wir zum Bereich „Angewandte Schritte“ gehen und auf „Geänderter Typ1“ klicken , werden die Spalten „Traditionelle Ausreißer “ und „Anomalieerkennung“ nebeneinander angezeigt, wobei letztere 1 und -1 verwenden, um Ausreißer zu kennzeichnen, und nicht.

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Wenn wir jedoch Datumsangaben mit Python verwenden, können diese fehlerhaft erscheinen. 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Was wir tun können, ist, eine zusätzliche Spalte zu erstellen, indem wir den Index aus „Add Column“ verwenden .

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Fügen Sie dann mit Merge den Index zur vorherigen Spalte hinzu , damit wir alle Informationen in dieser ursprünglichen Spalte/diesem ursprünglichen Datensatz beibehalten können. 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Sobald wir alles zusammen haben, können wir unseren Code ausführen und unsere Visuals aktualisieren. Denken Sie daran, dass wir die Kontamination des Ausreißers von 0,5 auf 0,1 geändert haben, sodass dieser Teil des Diagramms deutlich schrumpfen sollte. 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Gehen Sie zurück zu den Visuals und klicken Sie auf „Änderungen übernehmen“. 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Beachten Sie, dass die Anomalieerkennung von 32,56 % auf 11,63 % unserer Daten zurückgegangen ist. 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Wie wir in unseren Ergebnissen sehen, ist dies eine gute Möglichkeit, unsere Ausreißererkennung zu optimieren. 

Denken Sie auch daran, dass Menschen, die die traditionelle Methode verwenden, möglicherweise Werte unter 1,5 verwenden, aber 1,5 x IQR ist dennoch die traditionelle Methode. 

Isolation Forest-Algorithmus zur Ausreißererkennung in Python

Isolation Forest-Algorithmus zur Ausreißererkennung in Python


Erkennen und Präsentieren von Ausreißerergebnissen in LuckyTemplates.
Erstellen dynamischer Ausreißer-Triggerpunkte in LuckyTemplates.
LuckyTemplates-Funktion zur Anomalieerkennung: So funktioniert es

Abschluss

Mithilfe des Isolation Forest-Algorithmus können wir ungewöhnliche Beobachtungen leicht identifizieren und aus unserem Datensatz ausschließen und so die Genauigkeit unserer Analyse verbessern. Dieses Tutorial bietet eine Schritt-für-Schritt-Anleitung zur Verwendung des Isolation Forest-Algorithmus zur Ausreißererkennung mit Python, die Ihnen den Einstieg in die Implementierung in Ihren eigenen Projekten erleichtern soll.

Was wir gemacht haben, war eine sehr einfache Möglichkeit, unseren Python- Code zum Auffinden von Anomalien zu verwenden . Sie können diesen Algorithmus weiter optimieren, indem Sie die Kontamination und eine Vielzahl anderer Variablen ändern, die Sie über die Codepage  von Python lernen können.

Alles Gute,


So speichern und laden Sie eine RDS-Datei in R

So speichern und laden Sie eine RDS-Datei in R

Sie erfahren, wie Sie Objekte aus einer .rds-Datei in R speichern und laden. In diesem Blog wird auch behandelt, wie Sie Objekte aus R in LuckyTemplates importieren.

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

In diesem Tutorial zur DAX-Codierungssprache erfahren Sie, wie Sie die GENERATE-Funktion verwenden und einen Kennzahltitel dynamisch ändern.

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

In diesem Tutorial erfahren Sie, wie Sie mithilfe der Multi-Threaded-Dynamic-Visuals-Technik Erkenntnisse aus dynamischen Datenvisualisierungen in Ihren Berichten gewinnen.

Einführung in den Filterkontext in LuckyTemplates

Einführung in den Filterkontext in LuckyTemplates

In diesem Artikel werde ich den Filterkontext durchgehen. Der Filterkontext ist eines der Hauptthemen, über die sich jeder LuckyTemplates-Benutzer zunächst informieren sollte.

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Ich möchte zeigen, wie der LuckyTemplates Apps-Onlinedienst bei der Verwaltung verschiedener Berichte und Erkenntnisse aus verschiedenen Quellen helfen kann.

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Erfahren Sie, wie Sie Ihre Gewinnmargenänderungen mithilfe von Techniken wie Kennzahlenverzweigung und der Kombination von DAX-Formeln in LuckyTemplates ermitteln.

Materialisierungsideen für Datencaches in DAX Studio

Materialisierungsideen für Datencaches in DAX Studio

In diesem Tutorial werden die Ideen der Materialisierung von Datencaches und deren Auswirkungen auf die Leistung von DAXs bei der Bereitstellung von Ergebnissen erläutert.

Geschäftsberichte mit LuckyTemplates

Geschäftsberichte mit LuckyTemplates

Wenn Sie bisher noch Excel verwenden, ist dies der beste Zeitpunkt, LuckyTemplates für Ihre Geschäftsberichtsanforderungen zu verwenden.

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst