Ein Dataset ist eine Sammlung von Beispielen.
Viele Datensätze speichern Daten in Tabellen (Rastern), z. B. als durch Kommas getrennte Werte (CSV) oder direkt aus Tabellenkalkulationen oder Datenbanktabellen. Tabellen sind ein intuitives Eingabeformat für Modelle für maschinelles Lernen. Sie können sich jede Zeile der Tabelle als Beispiel und jede Spalte als potenzielles Feature oder Label vorstellen. Datasets können aber auch aus anderen Formaten abgeleitet werden, z. B. aus Protokolldateien und Protokollpuffern.
Unabhängig vom Format ist Ihr ML-Modell nur so gut wie die Daten, mit denen es trainiert wird. In diesem Abschnitt werden wichtige Datenmerkmale untersucht.
Datentypen
Ein Datensatz kann viele Arten von Datentypen enthalten, darunter:
- numerische Daten, die in einem separaten Modul behandelt werden
- kategorische Daten, die in einem separaten Abschnitt behandelt werden
- menschliche Sprache, einschließlich einzelner Wörter und Sätze bis hin zu ganzen Textdokumenten
- Multimedia (z. B. Bilder, Videos und Audiodateien)
- Ausgabe anderer ML-Systeme
- Embedding-Vektoren, die in einem späteren Modul behandelt werden
Datenmenge
Als Faustregel gilt: Ihr Modell sollte mit mindestens einer Größenordnung (oder zwei) mehr Beispielen trainiert werden als trainierbare Parameter. Gute Modelle werden jedoch in der Regel mit deutlich mehr Beispielen trainiert.
Modelle, die mit großen Datensätzen mit wenigen Features trainiert werden, schneiden in der Regel besser ab als Modelle, die mit kleinen Datensätzen mit vielen Features trainiert werden. Google hat in der Vergangenheit große Erfolge beim Training einfacher Modelle mit großen Datasets erzielt.
Für verschiedene Datasets für verschiedene Programme für maschinelles Lernen sind möglicherweise sehr unterschiedliche Mengen an Beispielen erforderlich, um ein nützliches Modell zu erstellen. Bei einigen relativ einfachen Problemen reichen möglicherweise ein paar Dutzend Beispiele aus. Bei anderen Problemen reichen eine Billion Beispiele möglicherweise nicht aus.
Mit einem kleinen Datensatz lassen sich gute Ergebnisse erzielen, wenn Sie ein vorhandenes Modell anpassen, das bereits mit großen Datenmengen aus demselben Schema trainiert wurde.
Qualität und Zuverlässigkeit der Daten
Jeder bevorzugt eine hohe Qualität gegenüber einer niedrigen Qualität, aber Qualität ist ein so vages Konzept, dass es auf viele verschiedene Arten definiert werden kann. In diesem Kurs wird Qualität pragmatisch definiert:
Ein qualitativ hochwertiger Datensatz hilft Ihrem Modell, sein Ziel zu erreichen. Ein Dataset mit geringer Qualität verhindert, dass Ihr Modell sein Ziel erreicht.
Ein hochwertiger Datensatz ist in der Regel auch zuverlässig. Die Zuverlässigkeit gibt an, inwieweit Sie Ihren Daten vertrauen können. Ein Modell, das mit einem zuverlässigen Datensatz trainiert wurde, liefert mit größerer Wahrscheinlichkeit nützliche Vorhersagen als ein Modell, das mit unzuverlässigen Daten trainiert wurde.
Beim Messen der Zuverlässigkeit müssen Sie Folgendes ermitteln:
- Wie häufig kommen Labelfehler vor? Wenn Ihre Daten beispielsweise von Menschen getaggt wurden, wie oft haben die menschlichen Bewerter Fehler gemacht?
- Sind Ihre Funktionen laut? Enthalten die Werte in Ihren Features Fehler? Seien Sie realistisch: Sie können Ihren Datensatz nicht vollständig von Störfaktoren befreien. Eine gewisse Abweichung ist normal. So schwanken GPS-Messungen für einen bestimmten Ort beispielsweise von Woche zu Woche immer ein wenig.
- Sind die Daten richtig für Ihr Problem gefiltert? Sollten Suchanfragen von Bots beispielsweise in Ihren Datensatz aufgenommen werden? Wenn Sie ein System zur Spamerkennung entwickeln, ist die Antwort wahrscheinlich ja. Wenn Sie jedoch die Suchergebnisse für Nutzer verbessern möchten, ist das nicht der Fall.
Im Folgenden sind häufige Ursachen für fehlerhafte Daten in Datasets aufgeführt:
- Ausgelassene Werte Beispiel: Eine Person hat vergessen, einen Wert für das Alter eines Hauses einzugeben.
- Duplizierte Beispiele. Beispiel: Ein Server hat dieselben Protokolleinträge versehentlich zweimal hochgeladen.
- Ungültige Featurewerte Beispielsweise hat jemand eine zusätzliche Ziffer eingegeben oder ein Thermometer wurde in der Sonne liegengelassen.
- Falsche Labels Beispiel: Eine Person hat ein Bild einer Eiche fälschlicherweise als Ahornbaum gekennzeichnet.
- Fehlerhafte Datenabschnitte. Eine bestimmte Funktion ist beispielsweise sehr zuverlässig, bis auf diesen einen Tag, an dem das Netzwerk immer wieder abgestürzt ist.
Wir empfehlen, unzuverlässige Daten automatisch zu melden. Beispielsweise können in Unit-Tests, die ein externes formales Datenschema definieren oder verwenden, Werte gemeldet werden, die außerhalb eines definierten Bereichs liegen.
Vollständige und unvollständige Beispiele
Im Idealfall ist jedes Beispiel vollständig, d. h., jedes Beispiel enthält einen Wert für jedes Merkmal.
Leider sind reale Beispiele oft unvollständig, d. h. mindestens ein Merkmalswert fehlt.
Trainieren Sie ein Modell nicht mit unvollständigen Beispielen. Beheben oder entfernen Sie stattdessen unvollständige Beispiele. Gehen Sie dazu so vor:
- Löschen Sie unvollständige Beispiele.
- Impute: Das unvollständige Beispiel in ein vollständiges Beispiel umwandeln, indem fundierte Vermutungen für die fehlenden Werte angegeben werden.
Wenn der Datensatz genügend vollständige Beispiele enthält, um ein nützliches Modell zu trainieren, sollten Sie die unvollständigen Beispiele löschen. Wenn für nur ein Feature ein erheblicher Datensatz fehlt und dieses Feature dem Modell wahrscheinlich nicht viel nützt, sollten Sie es aus den Modellinputs löschen und prüfen, wie viel Qualität durch das Entfernen verloren geht. Wenn das Modell ohne diese Funktion genauso gut oder fast genauso gut funktioniert, ist das großartig. Wenn Sie hingegen nicht genügend vollständige Beispiele haben, um ein nützliches Modell zu trainieren, können Sie fehlende Werte imputieren.
Es ist in Ordnung, nutzlose oder redundante Beispiele zu löschen, aber es ist schlecht, wichtige Beispiele zu löschen. Leider ist es oft schwierig, nutzlose von nützlichen Beispielen zu unterscheiden. Wenn Sie sich nicht entscheiden können, ob Sie fehlende Werte löschen oder imputieren möchten, können Sie zwei Datasets erstellen: eines, bei dem unvollständige Beispiele gelöscht werden, und eines, bei dem fehlende Werte imputiert werden. Legen Sie dann fest, mit welchem Dataset das bessere Modell trainiert wird.
Ein gängiger Algorithmus besteht darin, den Mittelwert oder Median als imputierten Wert zu verwenden. Wenn Sie also ein numerisches Feature mit Z-Werten darstellen, ist der imputierte Wert in der Regel 0, da 0 im Allgemeinen der Mittelwert des Z-Werts ist.
Übung: Wissen testen
Hier sehen Sie zwei Spalten eines Datensatzes, die nach Timestamp
sortiert sind.
Zeitstempel | Temperatur |
---|---|
8. Juni 2023, 09:00 Uhr | 12 |
8. Juni 2023, 10:00 Uhr | 18 |
8. Juni 2023, 11:00 Uhr | fehlt |
8. Juni 2023, 12:00 Uhr | 24 |
8. Juni 2023, 13:00 Uhr | 38 |
Welcher der folgenden Werte wäre ein angemessener Wert für den fehlenden Wert von Temperature?