Methoden zur Erkennung von Ausreißern
Bild vom Autor

# Einführung

Alle Tutorials zur Datenwissenschaft lassen das Erkennen von Ausreißern recht einfach erscheinen. Entfernen Sie alle Werte, die größer als drei Standardabweichungen sind. das ist alles. Aber sobald Sie mit einem tatsächlichen Datensatz arbeiten, bei dem die Verteilung verzerrt ist und ein Stakeholder fragt: „Warum haben Sie diesen Datenpunkt entfernt?“ Du merkst plötzlich, dass du keine gute Antwort hast.

Additionally führten wir ein Experiment durch. Wir haben fünf der am häufigsten verwendeten Methoden zur Erkennung von Ausreißern an einem realen Datensatz (6.497 portugiesische Weine) getestet, um herauszufinden: Liefern diese Methoden konsistente Ergebnisse?

Das haben sie nicht getan. Was wir aus der Meinungsverschiedenheit gelernt haben, erwies sich als wertvoller als alles, was wir aus einem Lehrbuch hätten lernen können.

Methoden zur Erkennung von Ausreißern
Bild vom Autor

Wir haben diese Analyse als interaktives Strata-Notizbuch erstellt, ein Format, das Sie für Ihre eigenen Experimente verwenden können Datenprojekt auf StrataScratch. Sie können es anzeigen und ausführen Den vollständigen Code finden Sie hier.

# Einrichten

Unsere Daten stammen aus der Datensatz zur Weinqualitätöffentlich verfügbar über das Machine Studying Repository der UCI. Es enthält physikalisch-chemische Messungen von 6.497 portugiesischen „Vinho Verde“-Weinen (1.599 Rotweine, 4.898 Weißweine) sowie Qualitätsbewertungen von erfahrenen Verkostern.

Wir haben es aus mehreren Gründen ausgewählt. Es handelt sich um Produktionsdaten, nicht um etwas künstlich Generiertes. Die Verteilungen sind schief (6 von 11 Merkmalen haben eine Schiefe ( > 1 )), sodass die Daten nicht den Lehrbuchannahmen entsprechen. Und anhand der Qualitätsbewertungen können wir prüfen, ob die erkannten „Ausreißer“ häufiger bei Weinen mit ungewöhnlichen Bewertungen auftauchen.

Nachfolgend sind die fünf Methoden aufgeführt, die wir getestet haben:

Methoden zur Erkennung von Ausreißern

# Die erste Überraschung entdecken: Überhöhte Ergebnisse aus mehreren Exams

Bevor wir Methoden vergleichen konnten, stießen wir an eine Wand. Bei 11 Merkmalen führte der naive Ansatz (Kennzeichnung einer Stichprobe auf der Grundlage eines Extremwerts in mindestens einem Merkmal) zu extrem überhöhten Ergebnissen.

IQR hat etwa 23 % der Weine als Ausreißer gekennzeichnet. Der Z-Rating ist um etwa 26 % gesunken.

Wenn quick jeder vierte Wein als Ausreißer gekennzeichnet wird, stimmt etwas nicht. Echte Datensätze weisen keine 25 % Ausreißer auf. Das Downside bestand darin, dass wir 11 Funktionen unabhängig voneinander getestet haben, was die Ergebnisse überhöht.

Die Rechnung ist einfach. Wenn jedes Merkmal eine Wahrscheinlichkeit von weniger als 5 % hat, einen „zufälligen“ Extremwert zu haben, dann gilt bei 11 unabhängigen Merkmalen:
( P(textual content{mindestens ein Extrem}) = 1 – (0,95)^{11} ungefähr 43% )

Im Klartext: Selbst wenn jedes Merkmal völlig regular ist, würden Sie erwarten, dass quick die Hälfte Ihrer Stichproben zufällig irgendwo mindestens einen Extremwert aufweist.

Um dies zu beheben, haben wir die Anforderung geändert: Markieren Sie ein Beispiel nur, wenn mindestens zwei Merkmale gleichzeitig extrem sind.

Methoden zur Erkennung von Ausreißern

Durch die Änderung von min_features von 1 auf 2 wurde die Definition von „Jedes Merkmal der Stichprobe ist extrem“ in „Die Stichprobe ist über mehr als ein Merkmal extrem“ geändert.

Hier ist der Repair im Code:

# Depend excessive options per pattern
outlier_counts = (np.abs(z_scores) > 3.5).sum(axis=1)
outliers = outlier_counts >= 2

# Vergleich von 5 Methoden anhand eines Datensatzes

Nachdem die Lösung für mehrere Exams installiert battle, haben wir gezählt, wie viele Proben jede Methode gemeldet hat:

Methoden zur Erkennung von Ausreißern

So richten wir die ML-Methoden ein:

from sklearn.ensemble import IsolationForest
from sklearn.neighbors import LocalOutlierFactor
 
iforest = IsolationForest(contamination=0.05, random_state=42)
lof = LocalOutlierFactor(n_neighbors=20, contamination=0.05)

Warum zeigen die ML-Methoden alle genau 5 % an? Aufgrund des Kontaminationsparameters. Sie müssen genau diesen Prozentsatz angeben. Es handelt sich um eine Quote, nicht um einen Schwellenwert. Mit anderen Worten: Isolation Forest meldet 5 %, unabhängig davon, ob Ihre Daten 1 % echte Ausreißer oder 20 % enthalten.

# Den wahren Unterschied entdecken: Sie identifizieren verschiedene Dinge

Das hat uns am meisten überrascht. Als wir untersuchten, inwieweit die Methoden übereinstimmten, ergab sich das Jaccard-Ähnlichkeit lag zwischen 0,10 und 0,30. Das ist eine schlechte Übereinstimmung.

Von 6.497 Weinen:

  • Nur 32 Proben (0,5 %) wurden von allen vier Primärmethoden markiert
  • 143 Proben (2,2 %) wurden durch mehr als 3 Methoden gekennzeichnet
  • Die verbleibenden „Ausreißer“ wurden nur durch eine oder zwei Methoden gekennzeichnet

Man könnte meinen, dass es sich um einen Fehler handelt, aber genau darum geht es. Jede Methode hat ihre eigene Definition von „ungewöhnlich“:

Methoden zur Erkennung von Ausreißern

Wenn ein Wein einen deutlich über dem Durchschnitt liegenden Restzuckergehalt aufweist, handelt es sich um einen univariaten Ausreißer (Z-Rating/IQR erkennt ihn). Aber wenn er von anderen Weinen mit ähnlichem Zuckergehalt umgeben ist, wird LOF ihn nicht kennzeichnen. Im lokalen Kontext ist das regular.

Die eigentliche Frage lautet additionally nicht: „Welche Methode ist die beste?“ Es ist „Was für ein Ungewöhnliches suche ich?“

# Überprüfung der Vernunft: Korrelieren Ausreißer mit der Weinqualität?

Der Datensatz enthält Expertenbewertungen zur Qualität (3–9). Wir wollten wissen: Treten erkannte Ausreißer häufiger bei Weinen mit extremen Qualitätsbewertungen auf?

Methoden zur Erkennung von Ausreißern

Weine von extremer Qualität waren im Konsens doppelt so häufig Ausreißer. Das ist eine gute Überprüfung der geistigen Gesundheit. In einigen Fällen ist der Zusammenhang klar: Ein Wein mit viel zu viel flüchtiger Säure schmeckt nach Essig, wird schlecht bewertet und als Ausreißer abgestempelt. Die Chemie bestimmt beide Ergebnisse. Wir können jedoch nicht davon ausgehen, dass dies jeden Fall erklärt. Möglicherweise gibt es Muster, die wir nicht erkennen, oder verwirrende Faktoren, die wir nicht berücksichtigt haben.

# Drei Entscheidungen treffen, die unsere Ergebnisse geprägt haben

Methoden zur Erkennung von Ausreißern

// 1. Verwendung eines robusten Z-Scores anstelle eines Commonplace-Z-Scores

Ein Commonplace-Z-Rating verwendet den Mittelwert und die Standardabweichung der Daten, die beide von den in unserem Datensatz vorhandenen Ausreißern beeinflusst werden. Ein robuster Z-Rating verwendet stattdessen den Median und die mittlere absolute Abweichung (Median Absolute Deviation, MAD), die nicht von Ausreißern beeinflusst werden.

Infolgedessen identifizierte der Commonplace-Z-Rating 0,8 % der Daten als Ausreißer, während der Sturdy-Z-Rating 3,5 % identifizierte.

# Sturdy Z-Rating utilizing median and MAD
median = np.median(information, axis=0)
mad = np.median(np.abs(information - median), axis=0)
robust_z = 0.6745 * (information - median) / mad

// 2. Rot- und Weißweine getrennt skalieren

Rot- und Weißweine haben unterschiedliche Grundwerte an Chemikalien. Wenn beispielsweise Rot- und Weißweine in einem einzigen Datensatz kombiniert werden, kann ein Rotwein, der im Vergleich zu anderen Rotweinen eine völlig durchschnittliche Chemie aufweist, allein aufgrund seines Schwefelgehalts im Vergleich zum kombinierten Mittelwert von Rot- und Weißweinen als Ausreißer identifiziert werden. Daher haben wir jeden Weintyp separat anhand des Medians und des Interquartilbereichs (IQR) jedes Weintyps skaliert und dann beide kombiniert.

# Scale every wine sort individually
from sklearn.preprocessing import RobustScaler
scaled_parts = ()
for wine_type in ('pink', 'white'):
    subset = df(df('sort') == wine_type)(options)
    scaled_parts.append(RobustScaler().fit_transform(subset))

// 3. Wissen, wann eine Methode ausgeschlossen werden sollte

Bei Elliptic Envelope wird davon ausgegangen, dass Ihre Daten einer multivariaten Normalverteilung folgen. Bei uns battle das nicht der Fall. Sechs von elf Options hatten eine Schiefe über 1 und ein Characteristic erreichte 5,4. Der Vollständigkeit halber haben wir den Elliptischen Umschlag im Vergleich beibehalten, ihn jedoch bei der Konsensabstimmung nicht berücksichtigt.

# Bestimmen, welche Methode für diesen Weindatensatz am besten geeignet ist

Methoden zur Erkennung von Ausreißern
Bild vom Autor

Können wir angesichts der Merkmale unserer Daten (starke Schiefe, gemischte Grundgesamtheit, keine bekannte Grundwahrheit) einen „Gewinner“ auswählen?

Robuster Z-Rating, IQR, Isolation Forest und LOF verarbeiten alle verzerrte Daten einigermaßen intestine. Wenn wir gezwungen wären, uns für eines zu entscheiden, würden wir uns für Isolation Forest entscheiden: keine Verteilungsannahmen, berücksichtigt alle Merkmale auf einmal und geht elegant mit gemischten Populationen um.

Aber keine einzelne Methode kann alles:

  • Isolation Forest kann Ausreißer übersehen, die nur bei einem Merkmal extrem sind (Z-Rating/IQR fängt diese ab)
  • Z-Rating/IQR kann Ausreißer übersehen, die bei mehreren Merkmalen ungewöhnlich sind (mehrdimensionale Ausreißer).

Der bessere Ansatz: mehrere Methoden nutzen und dem Konsens vertrauen. Die 143 Weine, die durch drei oder mehr Methoden gekennzeichnet wurden, sind weitaus zuverlässiger als alle Weine, die nur durch eine einzelne Methode gekennzeichnet wurden.

So haben wir den Konsens berechnet:

# Depend what number of strategies flagged every pattern
consensus = zscore_out + iqr_out + iforest_out + lof_out
high_confidence = df(consensus >= 3)  # Recognized by 3+ strategies

Ohne Grundwahrheit (wie in den meisten realen Projekten) ist die Methodenübereinstimmung das beste Maß für die Zuverlässigkeit.

# Verstehen Sie, was das alles für Ihre eigenen Projekte bedeutet

Definieren Sie Ihr Downside, bevor Sie Ihre Methode auswählen. Was für ein „Ungewöhnliches“ suchen Sie eigentlich? Dateneingabefehler sehen anders aus als Messanomalien, und beide sehen anders aus als wirklich seltene Fälle. Die Artwork des Issues weist auf unterschiedliche Methoden hin.

Überprüfen Sie Ihre Annahmen. Wenn Ihre Daten stark verzerrt sind, führen Sie der Commonplace-Z-Rating und der Elliptische Umschlag in die Irre. Schauen Sie sich Ihre Verteilungen an, bevor Sie sich auf eine Methode festlegen.

Verwenden Sie mehrere Methoden. Proben, die von drei oder mehr Methoden mit unterschiedlichen Definitionen von „Ausreißer“ gekennzeichnet wurden, sind vertrauenswürdiger als Proben, die nur von einer Methode gekennzeichnet wurden.

Gehen Sie nicht davon aus, dass alle Ausreißer entfernt werden sollten. Ein Ausreißer könnte ein Fehler sein. Es könnte auch Ihr interessantester Datenpunkt sein. Den Ausschlag gibt Domänenwissen, nicht Algorithmen.

# Abschließende Bemerkungen

Der Punkt hier ist nicht, dass die Ausreißererkennung fehlerhaft ist. Es ist so, dass „Ausreißer“ unterschiedliche Bedeutungen hat, je nachdem, wer fragt. Z-Rating und IQR fangen Werte ab, die in einer einzelnen Dimension extrem sind. Isolation Forest und LOF finden Proben, die in ihrem Gesamtmuster hervorstechen. Elliptischer Umschlag funktioniert intestine, wenn Ihre Daten tatsächlich Gaußsche Daten sind (unsere waren das nicht).

Finden Sie heraus, wonach Sie wirklich suchen, bevor Sie sich für eine Methode entscheiden. Und wenn Sie sich nicht sicher sind? Führen Sie mehrere Methoden aus und folgen Sie dem Konsens.

# FAQs

// 1. Bestimmen, mit welcher Technik ich beginnen sollte

Ein guter Ausgangspunkt ist die Isolation Forest-Technik. Es geht nicht davon aus, wie Ihre Daten verteilt sind, und nutzt alle Ihre Funktionen gleichzeitig. Wenn Sie jedoch Extremwerte für eine bestimmte Messung identifizieren möchten (z. B. sehr hohe Blutdruckwerte), sind Z-Rating oder IQR möglicherweise besser dafür geeignet.

// 2. Auswahl einer Kontaminationsrate für Scikit-Be taught-Methoden

Es hängt von dem Downside ab, das Sie lösen möchten. Ein häufig verwendeter Wert ist 5 % (oder 0,05). Bedenken Sie jedoch, dass es sich bei der Kontamination um eine Quote handelt. Das bedeutet, dass 5 % Ihrer Stichproben als Ausreißer klassifiziert werden, unabhängig davon, ob Ihre Daten tatsächlich 1 % oder 20 % echte Ausreißer enthalten. Verwenden Sie eine Kontaminationsrate, die auf Ihrem Wissen über den Anteil der Ausreißer in Ihren Daten basiert.

// 3. Entfernen von Ausreißern vor der Aufteilung von Trainings-/Testdaten

Nein. Sie sollten ein Ausreißererkennungsmodell an Ihren Trainingsdatensatz anpassen und das trainierte Modell dann auf Ihren Testdatensatz anwenden. Andernfalls beeinflussen Ihre Testdaten Ihre Vorverarbeitung, was zu Lecks führt.

// 4. Umgang mit kategorialen Merkmalen

Die hier behandelten Techniken arbeiten mit numerischen Daten. Es gibt drei mögliche Alternativen für kategoriale Merkmale:

  • kodieren Sie Ihre kategorialen Variablen und fahren Sie fort;
  • Verwenden Sie eine Technik, die für gemischte Datentypen entwickelt wurde (z. B. HBOS).
  • Führen Sie die Ausreißererkennung für numerische Spalten separat durch und verwenden Sie häufigkeitsbasierte Methoden für kategoriale Spalten.

// 5. Wissen, ob ein markierter Ausreißer ein Fehler oder einfach nur ungewöhnlich ist

Sie können anhand des Algorithmus allein nicht bestimmen, wann ein identifizierter Ausreißer einen Fehler darstellt und wann er einfach ungewöhnlich ist. Es markiert, was ungewöhnlich ist, nicht, was falsch ist. Beispielsweise könnte ein Wein mit einem extrem hohen Restzuckergehalt ein Dateneingabefehler sein, oder es könnte sich um einen Dessertwein handeln, der so süß sein soll. Letztlich kann nur Ihre Fachkompetenz eine Antwort liefern. Wenn Sie sich nicht sicher sind, markieren Sie es zur Überprüfung, anstatt es automatisch zu entfernen.

Nate Rosidi ist Datenwissenschaftler und in der Produktstrategie tätig. Er ist außerdem außerordentlicher Professor für Analytik und Gründer von StrataScratch, einer Plattform, die Datenwissenschaftlern hilft, sich mit echten Interviewfragen von Prime-Unternehmen auf ihre Interviews vorzubereiten. Nate schreibt über die neuesten Traits auf dem Karrieremarkt, gibt Ratschläge zu Vorstellungsgesprächen, stellt Information-Science-Projekte vor und behandelt alles rund um SQL.



Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert