Diese Seite beschreibt einige grundlegende Konzepte, die Sie beim Zusammenstellen von Daten für ein AutoML Tables-Dataset berücksichtigen sollten. Sie erhebt nicht den Anspruch, alle Aspekte umfassend abzudecken.
Einführung
Ein sorgfältig aufgebautes Dataset erhöht die Qualität des resultierenden Modells für maschinelles Lernen. Sie können die Richtlinien auf dieser Seite nutzen, um die Qualität Ihres Datasets und Modells zu verbessern.
Wenn Sie bereits mit dem Erstellen von Trainingsdaten für ML-Modelle vertraut sind, lesen Sie unbedingt die Liste der Aufgaben, über die Sie sich keine Gedanken machen müssen. AutoML Tables führt viele Datenvorbereitungsaufgaben für Sie aus.
Best Practices für die Datenvorbereitung
Datenlecks vermeiden
Datenlecks treten auf, wenn Ihre Trainingsdaten vorhersagende Informationen enthalten, die nicht verfügbar sind, wenn Sie eine Vorhersage anfordern. Datenlecks können dazu führen, dass das Modell hervorragende Bewertungsmesswerte zeigt, aber schlecht mit echten Daten funktioniert.
Angenommen, Sie möchten wissen, wie viel Eiscreme Ihr Geschäft morgen verkaufen wird. Sie können die Temperatur des Zieltages nicht in Ihre Trainingsdaten einbeziehen, da Sie die Temperatur ja nicht kennen (es ist noch nicht passiert). Sie können jedoch die vorhergesagte Temperatur vom Vortag verwenden und sie in die Vorhersageanfrage einbeziehen.
Abweichungen zwischen Training und Bereitstellung vermeiden
Eine Abweichung zwischen Training und Bereitstellung tritt auf, wenn Sie die Trainingsdaten anders generieren als die Daten, die Sie zum Anfordern von Vorhersagen verwenden.
Beispielsweise, wenn Sie einen Durchschnittswert verwenden und zu Trainingszwecken einen Durchschnitt aus 10 Tagen bilden, aber beim Anfordern einer Vorhersage einen Durchschnitt für den letzten Monat.
Im Allgemeinen sollten alle Unterschiede zwischen dem Generieren der Trainingsdaten und der Bereitstellungsdaten, also den Daten, die Sie zum Generieren von Vorhersagen verwenden, überprüft werden, um Abweichungen zwischen Training und Bereitstellung zu vermeiden.
Abweichungen zwischen Training und Bereitstellung und Datenverteilung
Abweichungen zwischen Training und Bereitstellung können auch aufgrund der Datenverteilung in den Trainings-, Validierungs- und Testdatenaufteilungen auftreten. Es gibt häufig einen Unterschied zwischen der Datenverteilung, mit der ein Modell bei seiner Bereitstellung in der Produktion konfrontiert ist, und der Datenverteilung des Datasets, mit dem ein Modell trainiert wird. Beispiel: Es kann passieren, dass ein Modell in der Produktion auf eine völlig andere Nutzergruppe angewendet wird als während des Trainings. Oder das Modell wird möglicherweise 30 Tage nach Aufzeichnung der endgültigen Trainingsdaten für Vorhersagen verwendet.
Die besten Ergebnisse erzielen Sie, wenn die Verteilung der Datenaufteilungen, mit denen Ihr Modell erstellt wurde, genau dem Unterschied zwischen dem Trainingsdataset und den Daten entspricht, für die Sie Vorhersagen in Ihrer Produktionsumgebung treffen. AutoML Tables kann nicht-monotone Vorhersagen treffen. Wenn die Produktionsdaten aus einer sehr unterschiedlichen entnommen werden, die sich stark von den Trainingsdaten unterscheidet, dann sind nicht-monotone Vorhersagen nicht sehr zuverlässig.
Außerdem zwischen Produktionsdaten und Trainingsdaten der gleiche Unterschied bestehen wie zwischen der Validierungsdatenaufteilung und der Trainingsdatenaufteilung sowie zwischen der Testdatenaufteilung und der Validierungsdatenaufteilung.
Wenn Sie beispielsweise Voraussagen über den Lifetime-Wert (LTV) des Nutzers während der nächsten 30 Tage treffen möchten, müssen die Daten in der Validierungsdatenaufteilung 30 Tage älter sein als die Daten in Ihrer Trainingsdatenaufteilung, und die Daten in der Testdatenaufteilung müssen von einem Zeitpunkt 30 Tage nach der Validierungsdatenaufteilung stammen.
Wenn Sie Ihr Modell abstimmen möchten, um allgemeine Vorhersagen zu neuen Nutzern zu treffen, dürfen Daten von einem bestimmten Nutzer nur in einer einzigen Aufteilung Ihrer Trainingsdaten enthalten sein. Zum Beispiel befinden sich alle Zeilen, die sich auf user1
beziehen, in der Trainingsdatenaufteilung, alle Zeilen, die sich auf user2
beziehen, in der Validierungsdatenaufteilung und alle Zeilen, die sich auf user3
beziehen, in der Testdatenaufteilung.
Zeitsignal bereitstellen
Wenn sich das zugrunde liegende Muster in den Daten wahrscheinlich im Laufe der Zeit ändert (also in Bezug auf die Zeit nicht zufällig verteilt ist), müssen Sie diese Informationen unbedingt für AutoML Tables angeben. Sie können ein Zeitsignal auf verschiedene Arten angeben:
Wenn jede Datenzeile einen Zeitstempel hat, achten Sie darauf, dass die Spalte enthalten ist, den Datentyp
Timestamp
aufweist und beim Erstellen des Datasets als die Spalte Time (Zeit) definiert wird. Diese Reihenfolge wird verwendet, um die Daten aufzuteilen, wobei die neuesten Daten als Testdaten und die ältesten Daten als Trainingsdaten dienen. Weitere InformationenWenn Ihre Zeitspalte nicht viele unterschiedliche Werte enthält, sollten Sie sie manuell aufteilen, anstatt die Daten in der Spalte "Time" (Zeit) zu unterteilen. Andernfalls erhalten Sie möglicherweise nicht genügend Zeilen in den einzelnen Datasets, was dazu führen kann, dass das Training fehlschlägt.
Wenn die Zeitinformationen nicht in einer einzelnen Spalte enthalten sind, können Sie eine manuelle Datenaufteilung verwenden, um die neuesten Daten als Testdaten und die ältesten Daten als Trainingsdaten zu verwenden.
Informationen explizit zur Verfügung stellen, wo sie benötigt werden
Normalerweise müssen Sie beim Erstellen eines Modells mit AutoML Tables kein Feature Engineering vornehmen. Bei bestimmten Datenprimitiven können Sie jedoch die Modellqualität durch Engineering-Features verbessern.
Wenn die Daten beispielsweise Längen- und Breitengrade enthalten, werden diese Spalten ohne spezielle Berechnungen als numerische Daten behandelt. Wenn der Standort oder die Entfernung ein Signal für Ihr Problem darstellt, müssen Sie ein Feature entwickeln, das diese Informationen explizit bereitstellt.
Einige Datentypen, die möglicherweise ein Feature-Engineering erfordern:
- Längengrad/Breitengrad
- URLs
- IP-Adressen
- E-Mail-Adressen
- Telefonnummern
- Andere geografische Codes (z. B. Postleitzahlen)
Berechnete oder aggregierte Daten in eine Zeile einfügen
AutoML Tables verwenden nur die Eingabedaten in einer einzelnen Zeile, um den Zielwert für diese Zeile vorherzusagen. Wenn Sie Daten aus anderen Zeilen oder Quellen berechnet oder aggregiert haben, die für die Bestimmung des vorhergesagten Werts für eine Zeile nützlich wären, fügen Sie diese Daten in die Quellzeile ein. Achten Sie darauf, dass die neue Spalte kein Datenleck oder keine Abweichungen zwischen Training und Bereitstellung verursacht.
Wenn Sie beispielsweise den Bedarf der nächsten Woche für ein Produkt vorhersagen möchten, können Sie die Qualität der Vorhersage durch Einfügen von Spalten mit den folgenden Werten verbessern:
- Die Gesamtzahl der vorrätigen Artikel aus derselben Kategorie wie das Produkt.
- Der durchschnittliche Preis der vorrätigen Artikel aus derselben Kategorie wie das Produkt.
- Die Anzahl der Tage vor einem bekannten Feiertag, an dem die Vorhersage angefordert wird.
- Und so weiter...
Wenn Sie in einem anderen Beispiel vorhersagen möchten, ob ein bestimmter Nutzer ein Produkt kauft, können Sie die Qualität der Vorhersage durch Einfügen von Spalten mit den folgenden Werten verbessern:
- Die durchschnittliche bisherige Conversion-Rate oder Klickrate für den bestimmten Nutzer.
- Menge der Produkte, die sich derzeit im Einkaufswagen des Nutzers befinden.
Nullwerte als leere Zeichenfolgen darstellen
Wenn die Daten zur Darstellung von Nullwerten Sonderzeichen oder Zahlen verwenden, kann dies zu Problemen für AutoML Tables führen, da ihre Bedeutung nicht bekannt ist. Wenn Sie aus einer CSV-Datei importieren, verwenden Sie leere Zeichenfolgen, um Nullwerte darzustellen. In BigQuery verwenden Sie den Wert NULL.
Vermeiden Sie nach Möglichkeit fehlende Werte.
Prüfen Sie Ihre Daten auf fehlende Werte und korrigieren Sie sie nach Möglichkeit. Andernfalls können Sie den Wert leer lassen, wenn für die Spalte Nullwerte zulässig sind.
Leerzeichen zum Trennen von Text verwenden
In AutoML Tables werden Textstrings mit einem Token versehen und das Trainingssignal kann aus einzelnen Wörtern abgeleitet werden. Zum Trennen von Wörtern werden Leerzeichen verwendet. Wörter, die durch andere Zeichen getrennt sind, werden als eine Einheit behandelt.
Wenn Sie beispielsweise den Text "Rot/Grün/Blau" eingeben, wird er nicht in "Rot", "Grün" und "Blau" unterteilt. Wenn diese einzelnen Wörter für das Training des Modells wichtig sein könnten, sollten Sie den Text in "Rot Grün Blau" umwandeln, bevor Sie ihn in die Trainingsdaten aufnehmen.
Kategoriale Features müssen korrekt und einwandfrei sein
Dateninkonsistenzen können dazu führen, dass Kategorien falsch aufgeteilt werden. Wenn Sie beispielsweise "Braun" und "braun" haben, verwendet AutoML Tables diese Werte als separate Kategorien, obwohl dies möglicherweise von Ihnen nicht beabsichtigt war und beide Werte zur selben Kategorie gehören sollten. Rechtschreibfehler können einen ähnlichen Effekt haben. Achten Sie darauf, dass Sie diese Art von Inkonsistenzen aus den kategorialen Daten entfernen, bevor Sie die Trainingsdaten erstellen.
Unausgeglichene Klassen erfordern besondere Sorgfalt
Bei unausgeglichenen Klassen (ein selten auftretendes Klassifizierungsproblem bei einem oder mehreren Ergebnissen) lesen Sie die folgenden Tipps.
Ausreichende Trainingsdaten für die Minderheitenklasse bereitstellen
Wenn nur wenige Datenzeilen für eine Klasse vorhanden sind, beeinträchtigt dies die Modellqualität. Wenn möglich, sollten Sie für jede Klasse mindestens 100 Datenzeilen bereitstellen.
Manuelle Aufteilung
AutoML Tables wählt die Zeilen für das Test-Dataset nach dem Zufallsprinzip (aber deterministisch) aus. Bei unausgeglichenen Klassen kann es vorkommen, dass das Test-Dataset nur eine geringe Anzahl der Minderheitsklasse oder gar keine enthält, sodass das Training fehlschlägt.
Wenn Sie unausgeglichene Klassen haben, sollten Sie sie manuell aufteilen, damit in jeder Aufteilung genügend Zeilen mit den Minderheitsergebnissen enthalten sind.
Verzerrungen vermeiden
Achten Sie darauf, dass die Trainingsdaten repräsentativ für die gesamten potenziellen Daten sind, für die Sie Vorhersagen treffen werden. Wenn Sie beispielsweise Kunden auf der ganzen Welt haben, sollten Sie keinesfalls Trainingsdaten aus nur einem Land verwenden.
Genügend Trainingsdaten bereitstellen
Wenn Sie nicht genügend Trainingsdaten (Zeilen) bereitstellen, kann dies die Leistung des resultierenden Modells beeinträchtigen. Je mehr Features (Spalten) Sie zum Trainieren des Modells verwenden, desto mehr Daten (Zeilen) müssen Sie bereitstellen. Für Klassifizierungsmodelle empfiehlt es sich, mindestens 10-mal so viele Zeilen wie Spalten zu verwenden. Für Regressionsmodelle sollte die Zeilenanzahl mindestens das 50-Fache der Spaltenzahl ausmachen.
Ihr Dataset muss immer mindestens 1.000 Zeilen enthalten.
Alle anderen Vorverarbeitungen und Transformationen AutoML Tables überlassen
Sofern oben nicht anders angegeben, lassen Sie AutoML Tables das Feature-Engineering für Sie erledigen. AutoML Tables liefert die besten Ergebnisse, wenn es Zugriff auf die zugrunde liegenden Daten hat. Siehe Datenvorbereitung, die AutoML Tables erledigt.
Datenvorbereitung, die AutoML Tables erledigt
In diesem Abschnitt werden allgemeine Anforderungen an Trainingsdaten aufgeführt, die AutoML Tables automatisch für Sie übernimmt. Sie müssen diese Berechnungen nicht in Ihre Trainingsdaten aufnehmen. Wenn Sie diese Transformationen selbst durchführen und in Ihre Trainingsdaten aufnehmen, kann sich die Qualität des Modells verschlechtern.
Die folgenden automatischen Transformationen werden je nach Spaltentyp auf die einzelnen Funktionsspalten angewendet:
Spaltentyp | Transformation |
---|---|
Numerisch |
|
Numerical array (Numerisches Array) |
|
Kategorial |
|
Categorical array (Kategoriales Array) |
|
SMS |
|
Text-Array |
|
Timestamp |
|
Timestamp array (Zeitstempel-Array) |
|
Struct |
|
Nullwerte oder fehlende Werte
Sie können festlegen, wie Nullwerte für Ihre Trainingsdaten gehandhabt werden sollen. Dazu legen Sie für diese Spalte in Ihrem Dataset-Schema fest, ob sie Nullwerte enthalten darf oder nicht. Weitere Informationen finden Sie unter Dataset erstellen.
Wenn in einer Spalte, die keine Nullwerte zulässt, ein Nullwert vorhanden ist, wird die gesamte Zeile vom Training ausgeschlossen.
Nullwerte in Spalten, für die Nullwerte zulässig sind, werden mit einer speziellen Indikatorvariable gekennzeichnet, die angibt, dass der Wert null war oder fehlte. Bei kategorialen Transformationen und Texttransformationen führt der Indikator zu einer Einbettung.
AutoML Tables behandelt die folgenden Werte als Nullwerte:
NaN oder unendliche numerische Werte
Leerer String. AutoML Tables entfernt keine Leerzeichen von Strings. Das heißt, " " wird nicht als Nullwert betrachtet.
Ein String, der in NaN oder einen unendlichen numerischen Wert umgewandelt werden kann.
- Bei "NAN" wird Groß- und Kleinschreibung ignoriert, wobei ein optionales Plus- oder Minuszeichen vorangestellt wird.
- Bei "INF" wird Groß- und Kleinschreibung ignoriert, wobei ein optionales Plus- oder Minuszeichen vorangestellt wird.
Fehlende Werte
Nächste Schritte
- Sind meine Daten in Ordnung? Eine Checkliste der ML-Voraussetzungen
- Daten für maschinelles Lernen vorbereiten und kuratieren