Unser Ansatz – und der ist durchaus bescheiden: Wir sind Geonode und verkaufen Proxys an Leute, die Daten aus dem Internet sammeln; daher sehen wir viele Datensätze genau in dem Moment, in dem sie erstellt werden. Die Erkenntnis, die es wert ist, weitergegeben zu werden, ist, dass die kostspieligen Fehler bereits bei der Datenerhebung passieren und erst Monate später entdeckt werden. Nicht zu notieren, wann die Daten erhoben wurden, nicht festzuhalten, welche Felder möglicherweise fehlen, die Rohdaten nicht aufzubewahren – nichts davon schadet am ersten Tag, und doch machen all diese Versäumnisse einen Datensatz unbrauchbar, sobald jemand eine Frage stellt, mit der man nicht gerechnet hat. Nichts in diesem Artikel erfordert einen Kauf; die guten Gewohnheiten sind kostenlos und die meisten davon nehmen nur wenige Minuten in Anspruch.
Die Grundstruktur
Die meisten Datensätze weisen unabhängig vom Format dieselbe Struktur auf.
Datensätze – die einzelnen Elemente. Zeilen in einer Tabelle, Objekte in einem JSON-Array, Dateien in einem Verzeichnis. Ein Datensatz entspricht einem Element, das Sie beschreiben: eine Person, eine Transaktion, ein Produkt, ein Foto.
Felder – die Attribute jedes Datensatzes. Spalten in einer Tabelle, Schlüssel in einem Objekt. Name, Preis, Datum, Kategorie.
Werte – was ein bestimmtes Feld für einen bestimmten Datensatz enthält.
Schema – die Beschreibung, welche Felder vorhanden sind, welche Datentypen sie enthalten und welche Pflichtfelder sind. Manchmal formell und verbindlich, manchmal eine informelle Vereinbarung und gelegentlich gar nichts – was später zu Problemen führt.
Metadaten – Daten über den Datensatz selbst. Wann er erhoben wurde, von wem, woher, unter welcher Lizenz, mit welchen bekannten Einschränkungen.
Letzteres ist das, was Anfänger überspringen und erfahrene Praktiker unbedingt einfordern. Ein Datensatz ohne Metadaten ist eine Ansammlung von Zahlen, bei der man nicht beurteilen kann, ob sie die eigene Frage beantworten.
Strukturierte, halbstrukturierte und unstrukturierte Daten
Eine nützliche Dreiteilung, da sie bestimmt, was Sie ohne Vorverarbeitung tun können.
Strukturierte Daten verfügen über ein festes Schema und einheitliche Datentypen. Eine Datenbanktabelle, eine CSV-Datei mit festem Kopfzeilenbereich, eine Tabellenkalkulation. Sie können diese Daten direkt abfragen, filtern und aggregieren.
Halbstrukturierte Daten sind zwar organisiert, haben aber kein starres Schema. JSON, bei dem Datensätze unterschiedliche Felder haben können, XML, Protokolleinträge. Es gibt eine Struktur, die geparst werden muss, und diese variiert zwischen den einzelnen Datensätzen.
Unstrukturierte Daten weisen keine inhärente Datensatzstruktur auf. Textdokumente, Bilder, Audio, Video. Es ist nicht so, dass keine Informationen vorhanden wären; vielmehr erfordert die Extraktion von Feldern ein Modell oder einen Menschen.
In der Praxis verschwimmen die Grenzen. Ein Verzeichnis mit Bildern und einer CSV-Datei, in der Dateinamen, Abmessungen und Beschriftungen aufgelistet sind, ist unstrukturierter Inhalt mit einem strukturierten Index – was die Standardanordnung für Datensätze im maschinellen Lernen und generell ein bewährtes Muster ist.
Der Großteil der praktischen Arbeit besteht in der Konvertierung zwischen diesen beiden Formen. Durch Web-Scraping werden unstrukturierte Webseiten in strukturierte Datensätze umgewandelt; bei dieser Konvertierung treten die meisten Fehler auf, weshalb es wichtig ist, die Rohdaten zu bewahren.
Formate und was sie Sie kosten
Die Wahl ist wichtiger, als es den Anschein hat.
| Format | Struktur | Beibehaltene Typen | Streams | Geeignet für |
|---|---|---|---|---|
| CSV | Flache Tabelle | Nein – alles ist Text | Ja | Tabellenkalkulationen, Datenbankimport |
| JSON | Verschachtelt | Ja | Nein, benötigt das gesamte Dokument | APIs, Konfiguration, verschachtelte Datensätze |
| JSON Lines | Pro Zeile verschachtelt | Ja | Ja | Sammlungen, Protokolle, Ereignisströme |
| Parquet | Spaltenorientiert, typisiert | Ja, exakt | Teilweise | Analysen, Archivierung, große Datenmengen |
| SQLite | Relational | Ja | Abfragebasiert | Portierbare relationale Daten |
Drei Punkte, die in den meisten Fällen entscheidend sind.
CSV hat keine formale Spezifikation. RFC 4180 sagt dies selbst und beschreibt, was „von den meisten Implementierungen offenbar befolgt wird“. Das ist die Ursache für die Probleme mit Trennzeichen, Kodierung und Anführungszeichen, auf die jeder schon einmal gestoßen ist. Es ist zudem kompakt und universell lesbar, weshalb es sich weiterhin durchgesetzt hat.
JSON Lines wird zu selten genutzt und eignet sich in der Regel gut für die Datenerfassung. Ein JSON-Dokument pro Zeile: Es wird im Arbeitsspeicher gestreamt, lässt sich sicher anhängen, und selbst eine abgeschnittene Datei liefert noch jeden vollständigen Datensatz. Ein JSON-Array bietet keine dieser Eigenschaften, und ein abgestürzter Erfassungsjob hinterlässt eine nicht parsbare Datei.
Parquet ist das richtige Zielformat für alles, was groß und analytisch ist. Spaltenorientierte Speicherung bedeutet, dass eine Abfrage, die drei von vierzig Spalten betrifft, nur diese drei liest; die Komprimierung ist weitaus besser als bei Text, da ähnliche Werte nebeneinander liegen, und die Datentypen werden exakt beibehalten. Es ist nicht menschenlesbar – das ist der Kompromiss.
Eine sinnvolle Pipeline sammelt Daten zunächst in JSON-Lines, da dieses Format Unterbrechungen toleriert, und konvertiert sie anschließend in Batches zur Analyse in Parquet. Wir haben die Textformate ausführlich in JSON vs. CSV verglichen.
Was einen Datensatz nutzbar macht: FAIR
Die wissenschaftliche Gemeinschaft hat dies formalisiert, und das Rahmenwerk lässt sich weit über den Forschungsbereich hinaus anwenden.
Die 2016 veröffentlichten FAIR-Prinzipien legen vier Eigenschaften fest.
Auffindbar. F1 verlangt, dass „(Meta-)Daten einen global eindeutigen und dauerhaften Identifikator erhalten“; F2, dass „Daten mit umfangreichen Metadaten beschrieben werden“; F3, dass Metadaten „klar und explizit den Identifikator der Daten enthalten, die sie beschreiben“; und F4, dass sie „in einer durchsuchbaren Ressource registriert oder indexiert sind“.
Zugänglich. A1 verlangt den Abruf „über ihre Kennung unter Verwendung eines standardisierten Kommunikationsprotokolls“. A2 ist die Eigenschaft, die viele überrascht und wohl die wertvollste ist: „Metadaten sind zugänglich, auch wenn die Daten selbst nicht mehr verfügbar sind.“ Die Beschreibung eines Datensatzes sollte den Datensatz überdauern, damit jemand, der Jahre später eine Veröffentlichung liest, nachvollziehen kann, welche Daten verwendet wurden.
Interoperabel. I1 fordert „eine formale, zugängliche, gemeinsam genutzte und breit anwendbare Sprache zur Wissensrepräsentation“; I2 fordert Vokabulare, die selbst den FAIR-Prinzipien folgen; I3 fordert „qualifizierte Verweise auf andere (Meta-)Daten“.
Wiederverwendbar. R1 verlangt, dass Daten „umfassend mit einer Vielzahl genauer und relevanter Attribute beschrieben“ sind.
In die Praxis eines gewöhnlichen Projekts übersetzt bedeutet dies: Geben Sie Ihrem Datensatz eine stabile Kennung, halten Sie fest, was er enthält und woher er stammt, verwenden Sie Standardfeldnamen und -einheiten, sofern vorhanden, geben Sie die Lizenz an und bewahren Sie die Dokumentation auf, auch wenn Sie die Daten löschen.
Dokumentation eines Datensatzes
Die FAIR-Prinzipien betonen die Bedeutung der Dokumentation. „Datasheets for Datasets“ legt fest, was darin enthalten sein sollte.
Dieser Vorschlag aus dem Jahr 2018 orientiert sich an der Elektronikindustrie, wo jedes Bauteil mit einem Datenblatt ausgeliefert wird. Darin wird argumentiert, dass jedem Datensatz eine Dokumentation beiliegen sollte, die „seine Motivation, Zusammensetzung, Erhebungsmethode, empfohlene Verwendungszwecke und so weiter“ abdeckt, um „eine bessere Kommunikation zwischen den Erstellern und Nutzern von Datensätzen zu ermöglichen und die Machine-Learning-Community dazu anzuregen, Transparenz und Rechenschaftspflicht in den Vordergrund zu stellen“.
Daraus ergibt sich folgende praktische Checkliste:
Warum gibt es diesen Datensatz? Welche Frage sollte durch seine Erhebung beantwortet werden? Dies entscheidet darüber, ob er auch Ihre Frage beantwortet.
Was ist darin enthalten? Datensätze, Felder, Typen, Einheiten und was als fehlend gilt.
Wie wurde er erhoben? Methode, Zeiträume, Quellen, Stichprobenverfahren. Ein Datensatz, der innerhalb einer Woche von einer Website gescrapt wurde, ist etwas anderes als einer, der über ein Jahr hinweg aggregiert wurde.
Was ist es nicht? Bekannte Lücken, Verzerrungen, ausgeschlossene Bevölkerungsgruppen, fehlende Zeiträume. Der mit Abstand wertvollste Abschnitt und derjenige, der am häufigsten fehlt.
Wie sollte er verwendet werden und wie nicht? Beabsichtigte Anwendungsbereiche und bekannte ungeeignete Verwendungszwecke.
Wie lautet die Lizenz? Und an wen man sich wenden kann.
Wie wird der Datensatz gepflegt? Ob er aktualisiert wird und wie Versionen gekennzeichnet werden.
Das Verfassen dieser Informationen dauert eine Stunde, solange der Datensatz aktuell ist, und ist achtzehn Monate später nahezu unmöglich, wenn die Person, die ihn erhoben hat, nicht mehr da ist.
Qualitätsbewertung
Sechs Dimensionen, und für jede gibt es eine Überprüfung, die Sie tatsächlich durchführen können.
Vollständigkeit. Wie viel fehlt, und sind die fehlenden Werte zufällig verteilt? Zählen Sie die Nullwerte pro Feld. Ein Feld, das zu 40 % leer ist, sagt etwas aus – entweder liegt ein Erfassungsfehler vor oder es handelt sich um eine echte Optionalität, die Sie dokumentieren sollten.
Genauigkeit. Spiegeln die Werte die Realität wider? Im Allgemeinen schwer zu überprüfen, im Einzelnen jedoch machbar: Vergleichen Sie eine Zufallsstichprobe manuell mit der Quelle. Zwanzig Datensätze dauern fünfzehn Minuten und decken die meisten systematischen Fehler auf.
Konsistenz. Werden gleiche Dinge auf gleiche Weise dargestellt? Datumsangaben in gemischten Formaten, Länder sowohl als „UK“ als auch als „United Kingdom“, Preise mit und ohne Währungssymbole. Zählen Sie die unterschiedlichen Werte pro kategorialem Feld – ein Feld mit dreihundert unterschiedlichen „Ländern“ weist ein Normalisierungsproblem auf.
Aktualität. Wann wurden die Daten erhoben, und spielt das für Ihre Fragestellung eine Rolle? Preise aus dem letzten Quartal sind eher Geschichte als Daten.
Repräsentativität. Entspricht die Stichprobe der Grundgesamtheit, die für Sie von Interesse ist? Ein Datensatz mit Bewertungen ist ein Datensatz von Personen, die Bewertungen verfassen.
Herkunft. Können Sie jeden Datensatz bis zu seiner Quelle zurückverfolgen? Nur so können Sie Daten neu ableiten, prüfen und korrigieren – und genau deshalb lohnt es sich, die Rohdaten neben den aufbereiteten Datensätzen zu speichern.
Führen Sie diese Schritte vor der Analyse durch, nicht danach. Ein Normalisierungsproblem in einem Diagramm zu entdecken, ist wesentlich aufwendiger, als es bei einer Wertezählung zu erkennen.
Aufteilung der Daten für maschinelles Lernen
Wenn der Datensatz zum Trainieren eines Modells dient, ist die Aufteilung genauso wichtig wie die Daten selbst.
Trainingsdatensatz – das, woraus das Modell lernt. In der Regel der größte Teil. Validierungsdatensatz – dient zur Feinabstimmung und zur Auswahl zwischen verschiedenen Modellen. Testdatensatz – wird vollständig zurückgehalten und einmalig verwendet, um die Leistung in der Praxis abzuschätzen.
Es gibt drei häufige Fehlerquellen.
Informationsleck. Informationen aus dem Testdatensatz beeinflussen das Training. Die klassische Variante ist die Skalierung oder Imputation anhand von Statistiken, die vor der Aufteilung über den gesamten Datensatz berechnet wurden – dies führt zu einer unbemerkten Verzerrung Ihrer Ergebnisse.
Doppelte Datensätze über die Aufteilungen hinweg. Nahezu identische Einträge sowohl im Trainings- als auch im Testdatensatz bedeuten, dass das Modell die Antwort bereits kennt. Im Internet gesammelte Daten sind hierfür besonders anfällig, da derselbe Inhalt unter mehreren URLs erscheint.
Zeitliche Verunreinigung. Bei zeitlich geordneten Daten lässt eine zufällige Aufteilung das Modell aus der Zukunft lernen. Teilen Sie stattdessen nach Datum auf.
Das allgemeine Prinzip: Der Testdatensatz sollte der Situation ähneln, mit der Sie tatsächlich konfrontiert sein werden. Wenn Sie von heute aus die Zukunft vorhersagen wollen, teilen Sie nach Zeit auf. Wenn Sie neue Nutzer sehen werden, teilen Sie nach Nutzern auf.
Lizenzierung: Der entscheidende Faktor, der bestimmt, was Sie tun dürfen
Ein Datensatz, den Sie rechtlich nicht nutzen dürfen, ist kein Datensatz, über den Sie verfügen. Die Lizenzierung wird weitaus seltener überprüft, als es eigentlich sein sollte – meist, weil sie langweilig ist, bis zu dem Punkt, an dem sie das Einzige ist, was zählt.
Open-Data-Lizenzen. Creative Commons ist die gängige Familie. CC0 stellt Werke, soweit gesetzlich zulässig, in die Public Domain und knüpft keine Bedingungen daran. CC BY verlangt eine Namensnennung. CC BY-SA fügt eine „Share-Alike“-Bedingung hinzu, was bedeutet, dass abgeleitete Werke dieselbe Lizenz tragen müssen – was mit einem kommerziellen Produkt unvereinbar sein kann. CC BY-NC verbietet die kommerzielle Nutzung, und „nicht-kommerziell“ ist so weit gefasst, dass es ein echtes Risiko darstellt, wenn Ihre Nutzung mehrdeutig ist. Regierungsportale verwenden oft maßgeschneiderte offene Lizenzen, die in der Praxis großzügig ausgelegt sind; lesen Sie diese lieber einmal durch, anstatt einfach anzunehmen.
Datenbankrechte sind vom Urheberrecht getrennt. In der EU und im Vereinigten Königreich schützt ein sui generis-Recht erhebliche Investitionen in die Beschaffung, Überprüfung oder Darstellung des Inhalts einer Datenbank – unabhängig davon, ob einzelne Datensätze urheberrechtlich geschützt sind. Ein Datensatz mit bloßen Fakten kann dennoch als Datenbank geschützt sein, was genau die Situation ist, in der sich Aggregationsprojekte befinden.
Nutzungsbedingungen sind vertraglicher Natur. Ein Datensatz, der von einer Website erhoben wurde, deren Nutzungsbedingungen den automatisierten Zugriff verbieten, birgt dieses Problem unabhängig davon, um welche einzelnen Datensätze es sich handelt. Dies ist eine andere Frage als das Urheberrecht und gilt auch dann, wenn die Fakten selbst nicht geschützt sind.
Personenbezogene Daten unterliegen eigenen Vorschriften. Wenn Datensätze Personen identifizieren – direkt oder in Kombination –, gilt das Datenschutzrecht für den Besitz und die Verarbeitung dieser Daten, nicht nur für deren Erhebung. Das bedeutet: eine rechtmäßige Grundlage, Aufbewahrungsfristen und Rechte, die betroffene Personen gegenüber Ihnen geltend machen können. „Es war öffentlich einsehbar“ ist für sich genommen keine rechtmäßige Grundlage.
Und abgeleitete Datensätze übernehmen die Einschränkungen. Das Trainieren eines Modells anhand eines Datensatzes unter „Share-Alike“-Lizenz oder das Zusammenführen mehrerer Quellen mit unterschiedlichen Lizenzen führt zu Verpflichtungen, die sich aus der Vereinigung der Eingaben ergeben und nicht aus der freizügigsten einzelnen Lizenz.
In der Praxis ist es üblich, die Lizenz zum Zeitpunkt der Erhebung in der Dokumentation des Datensatzes zu vermerken, zusammen mit einem Link zu den Bedingungen in ihrer am Tag der Erhebung geltenden Fassung. Lizenzen ändern sich, Seiten mit den Nutzungsbedingungen werden überarbeitet, und die Möglichkeit, nachzuweisen, womit Sie bei der Erhebung einverstanden waren, ist wertvoller, als sich daran zu erinnern.
Woher Datensätze stammen
Fünf Quellen, geordnet nach dem jeweiligen Arbeitsaufwand (von geringstem zu höchstem).
Veröffentlichte offene Datensätze. Behördenportale, Forschungsrepositorien, institutionelle Archive. Kostenlos, dokumentiert und oft gut genug. Schauen Sie zuerst dort nach – der Umfang an bereits öffentlich verfügbaren Daten, die nicht neu erhoben werden müssen, ist beträchtlich.
APIs. Strukturiert, autorisiert, stabil. Wenn eine Quelle eine API veröffentlicht, ist dies fast immer der richtige Weg.
Kommerzielle Datenanbieter. Lizenziert, mit Support und entsprechend bepreist. Oft günstiger als die Eigenentwicklung, wenn man die Entwicklungszeit mit einberechnet.
Eigene Systeme. Protokolle, Transaktionen, Telemetriedaten. In der Regel die wertvollsten Daten, die einer Organisation zur Verfügung stehen – und die am meisten vernachlässigt werden.
Web-Erfassung. Das, womit wir unser Geld verdienen. Geeignet, wenn die Daten öffentlich sichtbar sind und kein autorisierter Weg existiert – und sie bringt Verpflichtungen mit sich: „robots.txt“, Nutzungsbedingungen, Urheberrecht, Datenbankrechte und, sofern personenbezogene Daten betroffen sind, Datenschutzrecht. Es ist auch die Quelle, die am meisten Dokumentation erfordert, da ein gescrapter Datensatz ohne Aufzeichnung darüber, wann und woher er stammt, sehr schwer zu verteidigen oder zu reproduzieren ist.
Häufig gestellte Fragen
Was ist ein Datensatz, einfach ausgedrückt?
Eine Sammlung miteinander in Zusammenhang stehender Daten, die so organisiert ist, dass sie als Einheit bearbeitet werden kann – in der Regel Datensätze (die Elemente) mit Feldern (ihren Attributen) sowie einer Beschreibung der Bedeutung dieser Felder. Eine Tabellenkalkulation, eine Datenbanktabelle und ein Ordner mit beschrifteten Bildern sind allesamt Datensätze.
Was ist der Unterschied zwischen Daten und einem Datensatz?
Daten sind das Rohmaterial; ein Datensatz ist eine abgegrenzte, organisierte Sammlung davon, die für einen bestimmten Zweck zusammengestellt wurde. Die Organisation und die Abgrenzung machen ihn nutzbar – man kann die Datensätze eines Datensatzes zählen, seine Felder beschreiben und angeben, woher er stammt.
Was sind strukturierte und unstrukturierte Daten?
Strukturierte Daten haben ein festes Schema und einheitliche Datentypen, wie beispielsweise eine Datenbanktabelle. Unstrukturierte Daten haben keine inhärente Datensatzstruktur – Text, Bilder, Audio. Halbstrukturierte Daten liegen dazwischen: Sie sind organisiert, haben aber eine variable Form, wie JSON oder Protokolldateien.
Welches Format sollte ich für einen Datensatz verwenden?
CSV für flache Tabellen, die in Tabellenkalkulationen oder einen Datenbank-Loader importiert werden. JSON Lines für alles, was inkrementell erfasst wird, da es sich strömen lässt und Kürzungen übersteht. Parquet für große Analysedaten, da die spaltenorientierte Speicherung und Typisierung Abfragen deutlich effizienter macht.
Was macht einen Datensatz qualitativ hochwertig aus?
Vollständigkeit, Genauigkeit, interne Konsistenz, Aktualität, Repräsentativität für die Population, die für Sie von Interesse ist, und nachvollziehbare Herkunft. Für jeden dieser Punkte gibt es konkrete Prüfkriterien – Nullwerte, eine manuell überprüfte Stichprobe, Anzahl der eindeutigen Werte pro kategorischem Feld.
Wie sollte ich einen Datensatz dokumentieren?
Halten Sie fest, warum er existiert, was er enthält, wie und wann er erhoben wurde, welche bekannten Lücken und Verzerrungen er aufweist, wie er verwendet werden sollte und wie nicht, welche Lizenz er hat und wie er gepflegt wird. Der Vorschlag „Datasheets for Datasets“ ist hierfür die Standardreferenz.
Was sind die FAIR-Prinzipien?
Findbar, zugänglich, interoperabel, wiederverwendbar – ein 2016 veröffentlichtes Rahmenwerk für das Datenmanagement. Die am meisten unterschätzte Anforderung ist, dass Metadaten „auch dann noch zugänglich sein sollten, wenn die Daten nicht mehr verfügbar sind“, sodass eine Beschreibung den Datensatz selbst überdauert.
Wie teile ich einen Datensatz für maschinelles Lernen auf?
In Trainings-, Validierungs- und Testdatensätze, wobei der Testdatensatz nur einmal verwendet wird. Führen Sie alle Transformationen ausschließlich am Trainingsdatensatz durch, entfernen Sie Beinahe-Duplikate über die Aufteilungen hinweg und teilen Sie zeitlich geordnete Daten nach Zeit statt nach dem Zufallsprinzip auf – alle drei Punkte sind häufige Ursachen für unbemerkt überhöhte Ergebnisse.
Fazit
Ein Datensatz besteht aus Datensätzen, Feldern und Werten sowie der Beschreibung, die ihnen eine Bedeutung verleiht. Die Beschreibung ist der Teil, der darüber entscheidet, ob jemand – einschließlich Ihnen selbst – den Datensatz in sechs Monaten noch nutzen kann.
Die Formate sind weniger wichtig als die Gewohnheiten. CSV, wo es passt; JSON Lines für alles, was Sie schrittweise erfassen, da es einen unterbrochenen Job übersteht; Parquet, wenn die Datenmengen groß sind und die Abfragen analytischer Natur sind. Jedes dieser Formate funktioniert; ein Fehler ist es, ein JSON-Array für eine lang andauernde Datenerfassung zu wählen und nach einem Absturz eine nicht parsbare Datei vorzufinden.
Am meisten lohnen sich die Anstrengungen bei der Dokumentation, die verfasst wird, solange der Datensatz noch aktuell ist. Warum er existiert, wie und wann er erfasst wurde, was fehlt und wofür er nicht verwendet werden sollte. Die FAIR-Prinzipien formulieren dies formal, der Vorschlag „Datasheets for Datasets“ bietet dir eine Checkliste, und beide weisen in dieselbe Richtung: Metadaten sollten die Daten überdauern.
Und überprüfen Sie die Qualität, bevor Sie mit der Analyse beginnen. Die Anzahl der Nullwerte pro Feld, die Anzahl der eindeutigen Werte pro kategorialem Feld und zwanzig manuell anhand der Quelle überprüfte Datensätze decken die meisten systematischen Probleme in weniger als einer Stunde auf – was wesentlich kostengünstiger ist, als sie erst in der Schlussfolgerung zu entdecken.
