Datensätze, die Best Practices verstehen

13

Ich bin ein CS-Masterstudent im Bereich Data Mining. Mein Vorgesetzter hat mir einmal gesagt, dass ich die Daten vollständig verstehen und sicherstellen muss, dass die Daten sauber und korrekt sind, bevor ich einen Klassifikator ausführe oder etwas mit einem Datensatz mache.

Meine Fragen:

  • Was sind die Best Practices zum Verständnis eines Datensatzes (hochdimensional mit numerischen und nominalen Attributen)?

  • Methoden, um sicherzustellen, dass der Datensatz sauber ist?

  • Methoden, um sicherzustellen, dass der Datensatz keine falschen Werte enthält oder so?

Jack Twain
quelle

Antworten:

8

Es gibt grundlegende Dinge, die Sie mit jedem Datensatz tun können:

  1. Werte validieren (Stringlängentoleranz, Datentyp, Formatierungsmasken, erforderliche Feldpräsenz usw.)
  2. Bereichskorrektheit (Liegen diese scheinbar korrekten Daten innerhalb der erwarteten Wertebereiche)
  3. Vorverarbeitung (Wenn ich versuche, diese Daten zu analysieren, kann ich die Grundlagen ausführen, ohne auf Fehler zu stoßen)
  4. Vorläufige Berichterstellung (Erstellen Sie einen Bericht anhand eines Datensatzes und stellen Sie sicher, dass dieser einen Gesundheitstest besteht.)
  5. Definieren von Null vs. Leer vs. Null vs. Falsch für eine bestimmte Datenspalte
  6. Identifizieren von nicht korrekten Daten (numerische Werte, die sich erheblich von anderen Werten in einem Datensatz unterscheiden, Zeichenfolgenwerte, die so aussehen, als wären sie falsch geschrieben, usw.)
  7. Beseitigen oder Korrigieren offensichtlich fehlerhafter Daten

Das Verstehen von Daten zum Erkennen von Fehlern ist ein völlig anderes Spiel, und es ist sehr wichtig.

Beispielsweise können Sie eine Regel festlegen, die besagt, dass eine Seriennummer in einem bestimmten Datensatz vorhanden sein muss und dass diese Seriennummer alphanumerisch mit einer maximalen Zeichenfolgenlänge von 255 und einer minimalen Zeichenfolgenlänge von 5 sein muss.

Wenn Sie sich die Daten ansehen, werden Sie möglicherweise feststellen, dass eine bestimmte Seriennummer lautet. "PLEASE ENTER SERIAL" Sie ist vollkommen gültig, aber falsch.

Das liegt auf der Hand, aber sagen wir, Sie verarbeiten Bestandsdaten und hatten eine Preisspanne für 1000 Aktien, die unter einem Dollar lagen. Viele Menschen würden nicht wissen, dass ein so niedriger Aktienkurs an bestimmten Börsen ungültig und an anderen Börsen vollkommen gültig ist. Sie benötigen Kenntnisse über Ihre Daten, um zu verstehen, ob das, was Sie sehen, problematisch ist oder nicht.

In der realen Welt haben Sie nicht immer den Luxus, Ihre Daten genau zu verstehen.

Ich vermeide Probleme, indem ich die Menschen um mich herum nutze. Bei kleinen Datenmengen kann ich jemanden bitten, die Daten vollständig zu überprüfen. Für große Unternehmen ist es sinnvoller, eine Reihe von Zufallsstichproben zu ziehen und jemanden zu bitten, die Daten auf ihre Richtigkeit zu überprüfen.

Darüber hinaus ist es unerlässlich, die Datenquelle und die Vertrauenswürdigkeit dieser Datenquelle in Frage zu stellen. Ich habe oft mehrere widersprüchliche Datenquellen und wir erstellen Regeln, um die "Quelle der Wahrheit" zu bestimmen. Manchmal verfügt ein Datensatz in einem bestimmten Aspekt über hervorragende Daten, andere Datensätze sind jedoch in anderen Bereichen stärker.

Manuell eingegebene Daten sind normalerweise das, was ich am skeptischsten finde, aber in einigen Fällen sind sie stärker als alles, was durch Automatisierung erfasst werden kann.

Steve Kallestad
quelle
5

Ich mag die Antwort von @Kallestad sehr, aber ich möchte einen Metaschritt hinzufügen: Stellen Sie sicher, dass Sie verstehen, wie die Daten gesammelt wurden und welche Arten von Einschränkungen es gibt. Ich denke, es ist sehr verbreitet zu denken, dass es keine nicht offensichtlichen Schritte gibt, wenn die Daten gesammelt werden, aber dies ist nicht der Fall: Meistens haben einige Prozesse oder Einzelpersonen mit den Daten etwas zu tun, und diese Schritte können und werden Einfluss auf die Form der Daten.

Zwei Beispiele: Ich hatte kürzlich eine Studie, in der die Daten von verschiedenen Anbietern weltweit gesammelt wurden. Ich war nicht bei der Besprechung, das war für mich undurchsichtig. Leider waren die Messungen für einige Teile Frankreichs nicht korrekt: Alle mochten Eiscreme, aber wir erwarteten eine zufällige Verteilung. Es gab keinen offensichtlichen Grund für diese Einheitlichkeit, also begann ich, die Fehler aufzuspüren. Als ich die Auftragnehmer befragte, hatte man das Briefing missverstanden und nur Eisliebhaber aus seiner Datenbank ausgewählt.

Der zweite Fehler war schwieriger: Bei einigen geografischen Analysen stellte ich fest, dass viele Menschen extrem große Bewegungsmuster aufwiesen, was darauf hindeutete, dass viele von ihnen innerhalb von Minuten von München nach Hamburg reisten. Wenn ich mit anderen Upstream-Mitarbeitern sprach, stellten sie einen subtilen Fehler in ihrer Datenaggregationssoftware fest, der zuvor unbemerkt blieb.

Schlussfolgerungen:

  • Gehen Sie nicht davon aus, dass Ihre Daten von perfekten Prozessen / Menschen gesammelt wurden.
  • Versuchen Sie, die Grenzen Ihrer Datenanbieter zu verstehen.
  • Schauen Sie sich einzelne Muster / Werte an und versuchen Sie festzustellen, ob sie logisch sind (einfach für Bewegungen / geografische Daten).
Christian Sauer
quelle
4

Normalerweise gehe ich in zwei Schritten vor

  1. Berechnen Sie univariate (Variable für Variable) zusammenfassende Statistiken wie Mittelwert, Bereich, Varianz, Anzahl der Vermissten, Kardinalität usw. für jede Variable und suchen Sie nach Kuriositäten (z. B. Bereich aufgrund der Bedeutung der Variablen nicht plausibel). Zeichnen Sie Histogramme für diese ungeraden Variablen.

  2. Teilen Sie die Daten in überschaubare Teilmengen auf (wählen Sie eine aussagekräftige Variable und teilen Sie die Daten danach auf, z. B. alle positiven und alle negativen Beispiele) und untersuchen Sie sie visuell (z. B. mit ggobi) . ). Verwenden Sie insbesondere Werkzeuge wie Pinsel und Punktdiagramme, um zu verstehen, wie Variablen miteinander verknüpft sind.

Und wenn Sie mit der Erstellung von Modellen beginnen, stellen Sie sicher, dass Sie die Residuen zeichnen und nach extremen Fehlern suchen, die möglicherweise auf einen Ausreißer zurückzuführen sind, oder überprüfen Sie die Verwirrungsmatrix und stellen Sie sicher, dass sie ausgeglichen ist. Verwenden Sie die k-fache Kreuzvalidierung, um Ihre Modelle zu optimieren und die Varianz des Trainingsfehlers für jede Falte zu untersuchen. Wenn eine Falte viel schlechter abschneidet als die anderen, enthält sie möglicherweise Ausreißer.

damienfrancois
quelle
4

Im Folgenden finden Sie eine Kopie meiner Antwort auf eine verwandte (jedoch auf Datenbereinigung ausgerichtete) Frage hier auf Data Science StackExchange ( /datascience//a/722/2452 ), die vollständig für bereitgestellt wird Leserkomfort. Ich glaube, dass es teilweise auch Ihre Frage beantwortet und hoffe, dass es hilfreich ist. Während sich die Antwort auf das RÖkosystem konzentriert , können ähnliche Pakete und / oder Bibliotheken für andere Datenanalyseumgebungen gefunden werden . Während die beiden zitierten Artikel zur Datenaufbereitung auch Beispiele in R enthalten, stellen diese Artikel allgemeine Arbeitsabläufe (Frameworks) und Best Practices vor , die für R gelten alle Datenanalyse-Umgebung.

R enthält einige Standardfunktionen für die Datenmanipulation, die für die Datum Reinigung verwendet werden kann, in seinem Basispaket ( gsub, transform, etc.) sowie in verschiedene Fremdpakete, wie stringr , umformen , reshape2 und plyr . Beispiele und Best Practices für die Verwendung dieser Pakete und deren Funktionen sind in folgendem Dokument beschrieben: http://vita.had.co.nz/papers/tidy-data.pdf .

Zusätzlich R bietet einige Pakete speziell fokussiert auf Daten Reinigung und Transformation:

Ein umfassender und kohärenter Ansatz für die Datenbereinigung in R, einschließlich Beispielen und der Verwendung von Bearbeitungsregeln und deduzierten Paketen sowie eine Beschreibung des Workflows ( Frameworks ) für die Datenbereinigung in R, wird in folgendem Dokument vorgestellt, das ich wärmstens empfehle: http : //cran.r-project.org/doc/contrib/de_Jonge+van_der_Loo-Introduction_to_data_cleaning_with_R.pdf .

Aleksandr Blekh
quelle
3

Die Leute hier haben großartige Schritte angegeben, aber ich denke, dass es unter dem folgenden Link großartige Informationen gibt, was ich mache, wenn ich einen neuen Datensatz erhalte, der durch Tweets mitgeteilt wird. Er fasst die Schritte zusammen, die die Leute bei der Beantwortung der großartigen @hmason-Frage "Data people: Was tun Sie als Erstes, wenn Sie einen neuen Datensatz in den Händen halten? "

Hoffe, es wird nützlich sein.

Islam El Hosary
quelle
1

Ich füge eine Sache hinzu - wenn möglich, führen Sie eine Plausibilitätsprüfung durch, indem Sie Ihre Daten mit einer anderen Quelle vergleichen. Es scheint, dass ich mich verbrenne, wenn ich das nicht tue :(

JenSCDC
quelle