Daten für integrierte tabellarische Algorithmen vorverarbeiten

Auf dieser Seite erhalten Sie eine Übersicht darüber, wie AI Platform Training Ihre Daten mit tabellarischen integrierten Algorithmen für das Training vorverarbeitet. Außerdem werden hier die Anforderungen und Beschränkungen für Ihre Eingabedaten erläutert.

Tabellarische integrierte Algorithmen

Integrierte Algorithmen, die tabellarische Daten akzeptieren (numerische und kategoriale Daten), haben einige Vorverarbeitungsfeatures.

Einzelheiten zur Funktionsweise der Vorverarbeitung für jeden tabellarischen integrierten Algorithmus finden Sie in der entsprechenden Anleitung:

Die verteilte Version des XGBoost-Algorithmus unterstützt keine automatische Vorverarbeitung.

Eingabedaten formatieren

Ihre Eingabedaten müssen in einer CSV-Datei mit UTF-8-Codierung vorliegen.

Damit Ihre CSV-Eingabedatei die Anforderungen erfüllt, müssen Sie sie so vorbereiten:

  • Die Kopfzeile muss entfernt werden. Die Kopfzeile enthält die Labels für die einzelnen Spalten. Entfernen Sie sie, damit sie nicht mit dem Rest der Dateninstanzen als Teil der Trainingsdaten gesendet wird.
  • Die Zielspalte muss die erste Spalte sein. Die Zielspalte enthält den Wert, den Sie vorhersagen möchten. Bei einem Klassifizierungsalgorithmus werden alle Werte in der Zielspalte als Klasse oder Kategorie dargestellt. Bei einem Regressionsalgorithmus sind alle Werte in der Zielspalte numerische Werte.

Funktionsweise der Vorverarbeitung

Die automatische Vorverarbeitung kann für kategoriale und numerische Daten verwendet werden. Durch die Vorverarbeitungsroutine werden die Daten zuerst analysiert und dann transformiert.

Analyse

Als Erstes analysiert AI Platform Training das Dataset Spalte für Spalte. Dabei stellt der Dienst automatisch den Datentyp jeder Spalte fest. Anschließend ermittelt AI Platform Training, wie die einzelnen Spalten zu behandeln sind, und berechnet einige Statistiken zu den Daten in der Spalte. Der Trainingsjob erfasst die Ergebnisse dieser Analyse in der Datei metadata.json, die zusammen mit anderen Trainingsartefakten in Ihrem Cloud Storage-Bucket enthalten ist.

  • Typ: Die Spalte kann numerisch oder kategorial sein.
  • Behandlung: Durch den Algorithmus wird ermittelt, wie die einzelnen Spalten zu behandeln sind. Spalten können als constants oder als constants behandelt werden. Kategoriale Spalten können außerdem nach Identität oder Vokabular gekennzeichnet werden, je nachdem, ob die kategorialen Werte Ganzzahlen oder Strings sind. Eine Spalte mit einer großen Anzahl von Kategorien wird mit Hashing verarbeitet, um eine kleinere, überschaubarere Anzahl von Kategorien zu berechnen.
  • Statistiken: Statistiken werden berechnet, um die Merkmale in jeder Spalte basierend auf dem Typ und der Behandlung der Spalte zu transformieren.

Transformation

Nachdem die erste Analyse des Datasets abgeschlossen ist, transformiert AI Platform Training Ihre Daten anhand der Typen, Verarbeitungen und Statistikdaten, die auf Ihr Dataset angewendet werden. AI Platform Training führt die Transformationen in der folgenden Reihenfolge durch:

  1. Das Trainings-Dataset wird in Validierungs- und Test-Datasets aufgeteilt, wenn Sie die Teilungsprozentsätze angeben.
  2. Zeilen, in denen mehr als 10 % der Merkmale fehlen, werden entfernt.
  3. Fehlende Werte werden ergänzt. Für numerische Spalten wird der Mittelwert verwendet. Für XGBoost werden für kategoriale Spalten Nullen verwendet.

Beispieltransformationen

Zeilen, in denen 10 % der Werte fehlen, werden entfernt. In den folgenden Beispielen wird angenommen, dass die Zeile 10 Werte enthält. Der Einfachheit halber ist jede Beispielzeile abgeschnitten.

Zeilenproblem Ursprüngliche Werte Transformierte Werte Erläuterung
Beispielzeile ohne fehlende Werte [3, 0,45, ...,
'fruits', 0, 1]
[3, 0,45, ...,
1, 0, 0, 0, 1]
Der String "Früchte" wird in die Werte "1, 0, 0" in One-Hot-Codierung transformiert. Bei TensorFlow-basierten Algorithmen geschieht dies in der TensorFlow-Grafik. Für XGBoost wird diese Transformation in AI Platform Training durchgeführt.
Zu viele fehlende Werte [3, 0,45, ...,
"Früchte", __, __]
Zeile wird entfernt In der Zeile fehlen mehr als 10 % der Werte.
Fehlender numerischer Wert [3, 0.45, ...,
'fruits', 0, __]
[3, 0,45, ...,
1, 0, 0, 0, 0,54]
  • Der Mittelwert für die Spalte ersetzt den fehlenden numerischen Wert. In diesem Beispiel beträgt der Mittelwert 0,54.
  • Der String "Früchte" wird in die Werte "1, 0, 0" in One-Hot-Codierung transformiert. Bei TensorFlow-basierten Algorithmen geschieht dies in der TensorFlow-Grafik. Für XGBoost wird diese Transformation in AI Platform Training durchgeführt.
Fehlender kategorialer Wert [3, 0,45, ...,
__, 0, 1]
[3, 0,45, ...,
0, 0, 0, 0, 1]
  • Der fehlende kategoriale Wert wird in die Werte "0, 0, 0" in One-Hot-Codierung transformiert. Bei TensorFlow-basierten Algorithmen geschieht dies in der TensorFlow-Grafik. Für XGBoost wird diese Transformation in AI Platform Training durchgeführt.

Je nach ML-Framework, auf dem der integrierte Algorithmus basiert, gibt es weitere Unterschiede im Transformationsprozess. Bei den TensorFlow-basierten integrierten Algorithmen (Linear Learner, Wide and Deep) entsprechen die Spaltenbehandlungen direkt den Merkmalspalten, die im TensorFlow-Modell erstellt werden. AI Platform Training weist dem TensorFlow Estimator-Modell Featurespalten zu. Anschließend wird die Datentransformation zu einem Teil der Vorverarbeitung, die innerhalb des TensorFlow Estimator-Modells stattfindet.

Andernfalls wendet AI Platform Training wie bei XGBoost Spaltenbehandlungen an und führt die Datentransformationen direkt aus.

Nächste Schritte