Comparison of Outlier Detection Algorithms on String Data

Diese Arbeit vergleicht zwei Algorithmen zur Ausreißererkennung in Stringdaten, nämlich eine an die Levenshtein-Distanz angepasste Variante des Local Outlier Factor und einen neuen auf hierarchischen regulären Ausdrücken basierenden Ansatz, und zeigt deren jeweilige Stärken in Abhängigkeit von der Struktur der Daten und der Editierdistanz auf.

Philip Maus

Veröffentlicht 2026-03-13
📖 5 Min. Lesezeit🧠 Tiefgang

Each language version is independently generated for its own context, not a direct translation.

Titel: Der große Vergleich: Wie man „falsche Freunde" in Texten findet

Stell dir vor, du hast einen riesigen Haufen Zettel mit verschiedenen Texten. Die meisten Zettel sind ganz normal und gehören zusammen – wie eine Liste von deutschen Postleitzahlen oder Namen von Städten. Aber irgendwo dazwischen sind ein paar Zettel, die nicht hingehören. Vielleicht steht dort „Apfel" statt einer Postleitzahl, oder ein Datum ist völlig falsch geschrieben.

Diese Arbeit von Philip Maus fragt sich: Wie finden wir Computer diese „falschen Freunde" (Ausreißer) am besten?

Bisher haben Computer meistens nur bei Zahlen gut gearbeitet (z. B. bei Bankkontoständen). Aber Texte sind schwieriger. Maus hat zwei verschiedene Methoden getestet, um zu sehen, welche besser ist.

Hier ist die Erklärung der beiden Methoden mit einfachen Bildern:

Methode 1: Der „Nachbarschafts-Check" (Local Outlier Factor)

Stell dir vor, du bist auf einer Party.

  • Die Idee: Die meisten Leute stehen in Gruppen und unterhalten sich. Wenn jemand allein in der Ecke steht und niemand ihn kennt, ist er wahrscheinlich ein Ausreißer.
  • Wie es funktioniert: Der Algorithmus schaut sich jeden Text an und zählt, wie viele „ähnliche" Texte in der Nähe sind.
    • Wenn ein Text viele Nachbarn hat (z. B. „10115", „10117", „10119"), ist er sicher.
    • Wenn ein Text weit weg von allen anderen steht (z. B. „Apfelkuchen"), ist er ein Ausreißer.
  • Der Trick mit der Hierarchie: Normalerweise zählt der Computer jeden Buchstabenwechsel gleich. Aber Maus hat einen cleveren Trick eingebaut: Er weiß, dass ein „a" und ein „b" sich ähnlich sind (beide Buchstaben), aber ein „a" und eine „5" sind völlig unterschiedlich.
    • Analogie: Wenn du „Maus" in „Haus" umwandelst, ist das ein kleiner Schritt (nur der erste Buchstabe). Wenn du „Maus" in „5aus" umwandelst, ist das ein riesiger Schritt (Buchstabe zu Zahl). Der Algorithmus bestraft den riesigen Schritt härter. Das hilft ihm, Texte besser zu unterscheiden.

Wann ist diese Methode gut?
Wenn die „falschen Freunde" zwar ähnlich aussehen wie die echten, aber einfach nicht so oft vorkommen oder leicht anders geschrieben sind. Sie ist wie ein sensibler Nachbarschafts-Wächter.


Methode 2: Der „Muster-Schnüffler" (Reguläre Ausdrücke / HiLRE)

Stell dir vor, du hast eine Schablone (eine Vorlage), die genau beschreibt, wie ein normaler Text aussehen muss.

  • Die Idee: Der Computer lernt aus den normalen Texten eine Art „Regel" oder „Schablone". Alles, was in diese Schablone passt, ist okay. Alles, was nicht passt, ist ein Ausreißer.
  • Wie es funktioniert: Der Algorithmus schaut sich tausende Postleitzahlen an und merkt sich: „Aha! Alle bestehen aus genau 5 Zahlen." Er baut eine Schablone: [5 Zahlen].
    • Kommt „12345" rein? Passt!
    • Kommt „Apfel" rein? Passt nicht! -> Ausreißer!
  • Der Clou: Der Algorithmus ist schlau genug, verschiedene Schablonen zu testen. Er fragt sich: „Welche Schablone deckt die meisten normalen Texte ab, aber schließt die seltsamen Texte aus?"

Wann ist diese Methode gut?
Wenn die normalen Texte eine sehr klare Struktur haben (wie Postleitzahlen, die immer 5 Ziffern sind). Dann ist diese Methode extrem präzise und macht fast keine Fehler.

Wann ist sie schlecht?
Wenn die normalen Texte chaotisch sind. Stell dir vor, du willst die Namen von Städten erkennen. „Berlin", „München", „Frankfurt (Oder)", „Bonn". Da gibt es keine einfache Schablone. Der Computer kann keine perfekte Regel finden und gibt dann auf oder macht viele Fehler.


Das große Rennen: Wer gewinnt?

Maus hat beide Methoden an echten Daten getestet (z. B. Adressen von deutschen Krankenhäusern).

  1. Szenario A: Klare Struktur (Postleitzahlen)

    • Aufgabe: Finde Städte-Namen in einer Liste von Postleitzahlen.
    • Ergebnis: Der Muster-Schnüffler (Methode 2) gewinnt haushoch. Er erkennt sofort: „Das sind keine 5 Zahlen!" und markiert sie. Der Nachbarschafts-Check (Methode 1) ist etwas langsamer und macht manchmal Fehler, weil manche Städtenamen auch 5 Buchstaben lang sind.
  2. Szenario B: Chaotische Struktur (Städtenamen)

    • Aufgabe: Finde Postleitzahlen in einer Liste von Städtenamen.
    • Ergebnis: Beide Methoden haben Mühe. Der Muster-Schnüffler kann keine Regel für die chaotischen Städtenamen finden. Der Nachbarschafts-Check (Methode 1) ist hier etwas besser, weil er einfach sagt: „Die Postleitzahlen sehen alle gleich aus, die Städte sind alle anders – also sind die Postleitzahlen die Ausreißer."
  3. Szenario C: Längen-Unterschiede (Hausnummern vs. Postleitzahlen)

    • Aufgabe: Finde lange Hausnummern oder Telefonnummern in einer Liste von kurzen Postleitzahlen.
    • Ergebnis: Der Nachbarschafts-Check (Methode 1) ist hier der Gewinner. Da die Postleitzahlen alle kurz und dicht beieinander liegen, fallen die langen Nummern sofort als „einsam" auf. Der Muster-Schnüffler hat Probleme, weil er sich unsicher ist, ob er eine Regel für „alle Zahlen" oder nur für „5-stellige Zahlen" bauen soll.

Fazit für den Alltag

Es gibt keinen „perfekten" Roboter für alles.

  • Wenn du klare Regeln hast (wie Datenformate, Postleitzahlen, E-Mail-Adressen), nimm den Muster-Schnüffler. Er ist präzise wie ein Scheren.
  • Wenn die Daten vielfältig sind oder sich nur leicht unterscheiden (wie verschiedene Schreibweisen von Namen oder Texte mit unterschiedlicher Länge), ist der Nachbarschafts-Check besser. Er ist wie ein erfahrener Detektiv, der ein Gefühl für „Unstimmigkeiten" hat.

Diese Arbeit zeigt also: Um Fehler in Texten zu finden, muss man zuerst schauen, wie „ordentlich" die Texte sind, und dann den passenden Detektiv auswählen.