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,


Streudiagramm-Visualisierungen mit Charticulator

Streudiagramm-Visualisierungen mit Charticulator

In diesem Tutorial erfahren Sie, wie Sie mit Charticulator eine Streudiagramm-Visualisierung für Ihren LuckyTemplates-Bericht erstellen und entwerfen.

PowerApps-Suchfeld: So fügen Sie es hinzu und passen es an

PowerApps-Suchfeld: So fügen Sie es hinzu und passen es an

Erfahren Sie, wie Sie ein PowerApps-Suchfeld von Grund auf erstellen und es an das Gesamtthema Ihrer App anpassen.

Power Automate String-Funktionen: Substring und IndexOf

Power Automate String-Funktionen: Substring und IndexOf

Erlernen Sie ganz einfach zwei komplizierte Power Automate String-Funktionen, die in Microsoft Flows verwendet werden können – die Funktionen substring und indexOf.

Power Query M: Abwechselndes 0-1-Muster in der Datumstabelle

Power Query M: Abwechselndes 0-1-Muster in der Datumstabelle

Dieses Tutorial konzentriert sich auf die Power Query M-Funktion „number.mod“, um ein abwechselndes 0-1-Muster in der Datumstabelle zu erstellen.

Prognosetechnik: Erkundung der Prognoselogik in LuckyTemplates-Modellen

Prognosetechnik: Erkundung der Prognoselogik in LuckyTemplates-Modellen

In diesem Tutorial führe ich eine Prognosetechnik durch, bei der ich meine tatsächlichen Ergebnisse mit meinen Prognosen vergleiche und sie kumulativ betrachte.

Speichern Sie E-Mail-Anhänge in SharePoint mit Power Automate

Speichern Sie E-Mail-Anhänge in SharePoint mit Power Automate

In diesem Blog erfahren Sie, wie Sie mit Power Automate E-Mail-Anhänge automatisch in SharePoint speichern und E-Mails anschließend löschen.

Führen Sie eine Bis-Loop-Steuerung in Power Automate durch

Führen Sie eine Bis-Loop-Steuerung in Power Automate durch

Erfahren Sie, wie die Do Until Schleifensteuerung in Power Automate funktioniert und welche Schritte zur Implementierung erforderlich sind.

Berechnen eines gleitenden Durchschnitts in LuckyTemplates mithilfe von DAX

Berechnen eines gleitenden Durchschnitts in LuckyTemplates mithilfe von DAX

In diesem Tutorial erfahren Sie, wie Sie mithilfe der ALLSELECTED-Funktion einen dynamischen gleitenden Durchschnitt in LuckyTemplates berechnen können.

Berechnen Sie dynamisch eine laufende oder kumulative LuckyTemplates-Summe

Berechnen Sie dynamisch eine laufende oder kumulative LuckyTemplates-Summe

Durch diesen Artikel erhalten wir ein klares und besseres Verständnis für die dynamische Berechnung einer laufenden oder kumulativen Gesamtsumme in LuckyTemplates.

Power Automate auf jede Aktion in Workflows anwenden

Power Automate auf jede Aktion in Workflows anwenden

Erfahren und verstehen Sie die Bedeutung und ordnungsgemäße Verwendung der Power Automate-Aktionssteuerung „Auf jede anwenden“ in unseren Microsoft-Workflows.