top of page

7 einfache Techniken zum Erkennen von Anomalien in Pandas für die Datenanalyse

Aktualisiert: 18. Aug.

Die Datenanalyse ist eine spannende Reise, bringt aber auch Herausforderungen mit sich. Eine der größten Hürden besteht darin, Anomalien zu erkennen – unerwartete Ergebnisse, die unsere Schlussfolgerungen und Vorhersagen verfälschen können. Ob Sie Verkaufsdaten analysieren oder die Systemleistung überwachen, das Erkennen dieser Anomalien ist entscheidend. Als leidenschaftlicher Benutzer der Pandas-Bibliothek von Python habe ich mehrere praktische Techniken entdeckt, um diese Anomalien effizient zu identifizieren. In diesem Beitrag stelle ich Ihnen sieben zuverlässige Methoden vor, die Sie leicht implementieren können, um Ihre Datenanalyse zu verbessern.

Pandas erkennen Anomalien
Pandas detecting anomalies

Anomalien verstehen


Anomalien, manchmal auch Ausreißer genannt, sind Datenpunkte, die erheblich von der Gesamtverteilung abweichen. Sie können durch Probleme wie Messfehler oder seltene Ereignisse verursacht werden. Wenn Sie beispielsweise einen Datensatz mit den Kaufbeträgen von Kunden analysieren, würde eine einzelne Transaktion im Wert von 10.000 US-Dollar in einem Datensatz, in dem die meisten Käufe zwischen 20 und 200 US-Dollar liegen, als Anomalie betrachtet werden. Das Erkennen dieser Punkte ist von entscheidender Bedeutung, da sie Ihre Erkenntnisse verzerren und zu schlechten Entscheidungen führen können.


1. Visuelle Inspektion mit Boxplots


Eine der einfachsten und zugleich effektivsten Methoden zur Erkennung von Anomalien sind Boxplots. Sie zeigen die Verteilung der Daten deutlich und erleichtern die Identifizierung von Ausreißern.


Ein Boxplot umfasst fünf Statistiken: das Minimum, das erste Quartil, den Median, das dritte Quartil und das Maximum. Datenpunkte außerhalb der „Whisker“ sind potenzielle Ausreißer.


import pandas as pd
import matplotlib.pyplot as plt

Beispieldaten

data = {'Values': [1, 2, 3, 4, 5, 100]}
df = pd.DataFrame(data)

Boxplot

plt.boxplot(df['Values'])
plt.title('Box Plot of Values')

plt.show()

Studien zufolge können Boxplots Ausreißer effektiv aufzeigen und sind daher ein unverzichtbares Werkzeug in Ihrem Werkzeugkasten. Ein kurzer Blick auf den Boxplot zeigt Ihnen, ob es Werte gibt, die eine weitere Analyse verdienen.


2. Z-Score-Analyse


Der Z-Score bietet eine einfache Methode zur Quantifizierung der Distanz zwischen einem Datenpunkt und dem Mittelwert. Ein Z-Score-Wert über 3 oder unter -3 weist normalerweise auf eine Anomalie hin.


So berechnen Sie Z-Scores mit Pandas:


from scipy import stats
import pandas as pd

df['Z-Score'] = stats.zscore(df['Values'])
anomalies = df[(df['Z-Score'] > 3) | (df['Z-Score'] < -3)]

print(anomalies)

Mit dieser Technik können Sie die numerischen Messungen, die Abweichungen vom Mittelwert hervorheben, deutlich erkennen. Wenn Sie beispielsweise in einem Datensatz mit 1.000 Einträgen nur einige Z-Scores außerhalb dieses Bereichs identifizieren, kann dies ein Hinweis darauf sein, dass Sie etwas Ungewöhnliches vor sich haben, das einer Untersuchung bedarf.


3. Interquartilsabstand (IQR)


Der Interquartilsabstand (IQR) ist eine weitere robuste Methode zur Identifizierung von Anomalien. Der IQR wird als Differenz zwischen dem ersten (25. Perzentil) und dritten (75. Perzentil) Quartil berechnet und erfasst effektiv die mittleren 50 % der Daten.


Q1 = df['Values'].quantile(0.25)
Q3 = df['Values'].quantile(0.75)

IQR = Q3 - Q

Festlegen von Schwellenwerten zum Identifizieren von Ausreißern

lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR

anomalies = df[(df['Values'] < lower_bound) | (df['Values'] > upper_bound)]

print(anomalies)

Untersuchungen zeigen, dass die Auswirkungen von Ausreißern durch die Verwendung von IQR erheblich minimiert werden können. Beispielsweise kann die Anwendung von IQR in einem Datensatz mit 500 Verkaufsaufzeichnungen dabei helfen, Transaktionen zu identifizieren, die nicht mit dem Kaufverhalten der Kunden übereinstimmen.


4. Zeitreihenanalyse mit gleitendem Durchschnitt und Standardabweichung


Für Zeitreihendaten sind kontinuierliche Statistiken besonders nützlich. Sie ermöglichen die Berechnung des Mittelwerts und der Standardabweichung innerhalb eines gleitenden Fensters, wodurch sich Anomalien bei Trendänderungen leichter erkennen lassen.


df['Rolling_Mean'] = df['Values'].rolling(window=3).mean()
df['Rolling_Std'] = df['Values'].rolling(window=3).std()

Anomalien erkennen

anomalies = df[(df['Values'] > (df['Rolling_Mean'] + 2 * df['Rolling_Std'])) | (df['Values'] < (df['Rolling_Mean'] - 2 * df['Rolling_Std']))]

print(anomalies)

Wenn Sie beispielsweise Sensordaten über einen längeren Zeitraum überwachen, kann Sie diese Methode auf Schwankungen aufmerksam machen, die auf eine Fehlfunktion der Ausrüstung hinweisen können. So können Sie rechtzeitig Wartungsarbeiten durchführen, bevor sich die Probleme verschlimmern.


5. Isolationswald-Algorithmus


Für diejenigen, die sich in den Bereich des maschinellen Lernens wagen, ist der Isolation Forest-Algorithmus ein leistungsstarkes Tool zum Erkennen von Anomalien, insbesondere in großen Datensätzen.


Stellen Sie zunächst sicher, dass Sie die Scikit-Learn-Bibliothek installiert haben. Isolation Forest isoliert Anomalien durch die zufällige Auswahl von Features und Aufteilung von Werten, sodass Sie ungewöhnliche Muster erfassen können.


from sklearn.ensemble import IsolationForest

model = IsolationForest(contamination=0.1)

df['Anomaly'] = model.fit_predict(df[['Values']])
anomalies = df[df['Anomaly'] == -1]
print(anomalies)

Diese Methode ist besonders effektiv bei Datensätzen mit Zehntausenden von Einträgen, bei denen herkömmliche Methoden möglicherweise Schwierigkeiten haben, Anomalien zu erkennen.


6. Lokaler Ausreißerfaktor (LOF)


Der Local Outlier Factor (LOF) ist eine weitere fortschrittliche Technik, die die lokale Dichte eines Datenpunkts im Vergleich zu seinen Nachbarn bewertet. Punkte mit deutlich geringerer Dichte werden als Anomalien gekennzeichnet.


from sklearn.neighbors import LocalOutlierFactor

lof = LocalOutlierFactor()
df['Anomaly'] = lof.fit_predict(df[['Values']])
anomalies = df[df['Anomaly'] == -1]

print(anomalies)


Wenn Sie beispielsweise Verkehrsmuster analysieren, kann LOF Ihnen dabei helfen, ungewöhnliche Spitzen oder Rückgänge im Volumen zu erkennen und Sie auf mögliche Vorfälle oder Datenungenauigkeiten aufmerksam zu machen.


7. Visualisierungstechniken


Visuelle Tools können Ihr Verständnis der Daten erheblich verbessern und beim Erkennen von Anomalien helfen. Erwägen Sie die Verwendung von Streudiagrammen oder Paardiagrammen, um Ihre Daten effektiv visuell zu überprüfen.


plt.scatter(df.index, df['Values'])
plt.title('Scatter Plot of Values')

plt.xlabel('Index')
plt.ylabel('Values')

plt.axhline(y=upper_bound, color='r', linestyle='-')
plt.axhline(y=lower_bound, color='r', linestyle='-')

plt.show()

Studien zufolge können Visualisierungen zu Erkenntnissen führen, die Rohdaten und Messwerte möglicherweise nicht vollständig offenbaren. Sie liefern Erkenntnisse, mit denen Sie Muster und Ausreißer in komplexen Datensätzen schnell erkennen können.


Alles zusammenfügen: Pandas die Datenanalyse


Das Erkennen von Anomalien ist für eine genaue Datenanalyse von entscheidender Bedeutung, insbesondere in Branchen, in denen Genauigkeit von entscheidender Bedeutung ist. Während sich Tools wie Boxplots und Z-Score-Analysen hervorragend für erste Überprüfungen eignen, zeichnen sich fortgeschrittene Methoden wie Isolation Forest und Local Outlier Factor bei komplexen Analysen aus.

Probieren Sie diese Techniken aus, passen Sie sie an Ihre Datensätze an und verbessern Sie Ihre Datenanalysefähigkeiten mit Pandas. Mit diesen Tools sind Sie gut gerüstet, um Anomalien effizient zu erkennen und fundierte, datenbasierte Entscheidungen zu treffen.

Pandas auf der Jagd nach weiteren Datenanomalien
Pandas hunting for more data anomalies

bottom of page