RSVP für Ihr lokales TensorFlow Everywhere-Event noch heute!
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

TensorFlow-Datenvalidierung: Überprüfen und Analysieren Ihrer Daten

Sobald sich Ihre Daten in einer TFX-Pipeline befinden, können Sie sie mithilfe von TFX-Komponenten analysieren und transformieren. Sie können diese Tools bereits verwenden, bevor Sie ein Modell trainieren.

Es gibt viele Gründe, Ihre Daten zu analysieren und zu transformieren:

  • Probleme in Ihren Daten finden. Häufige Probleme sind:
    • Fehlende Daten, z. B. Features mit leeren Werten.
    • Beschriftungen, die als Merkmale behandelt werden, damit Ihr Modell während des Trainings die richtige Antwort finden kann.
    • Funktionen mit Werten außerhalb des erwarteten Bereichs.
    • Datenanomalien.
  • Effektivere Funktionssätze entwickeln. Zum Beispiel können Sie identifizieren:
    • Besonders informative Funktionen.
    • Redundante Funktionen.
    • Funktionen, deren Größe so stark variiert, dass sie das Lernen verlangsamen können.
    • Funktionen mit wenigen oder keinen eindeutigen Vorhersageinformationen.

TFX-Tools können sowohl beim Auffinden von Datenfehlern als auch beim Feature-Engineering helfen.

TensorFlow-Datenvalidierung

Überblick

Die TensorFlow-Datenvalidierung identifiziert Anomalien beim Training und beim Bereitstellen von Daten und kann durch Untersuchen der Daten automatisch ein Schema erstellen. Die Komponente kann so konfiguriert werden, dass verschiedene Klassen von Anomalien in den Daten erkannt werden. Es kann

  1. Führen Sie Gültigkeitsprüfungen durch, indem Sie Datenstatistiken mit einem Schema vergleichen, das die Erwartungen des Benutzers kodifiziert.
  2. Erkennen Sie Trainingsversatzversuche, indem Sie Beispiele in Trainings- und Servingdaten vergleichen.
  3. Erkennen Sie die Datendrift anhand einer Reihe von Daten.

Wir dokumentieren jede dieser Funktionen unabhängig:

Schemabasierte Beispielvalidierung

Die TensorFlow-Datenvalidierung identifiziert alle Anomalien in den Eingabedaten, indem Datenstatistiken mit einem Schema verglichen werden. Das Schema kodiert Eigenschaften, die die Eingabedaten erfüllen sollen, z. B. Datentypen oder kategoriale Werte, und kann vom Benutzer geändert oder ersetzt werden.

Erweiterte Schemafunktionen

Dieser Abschnitt behandelt eine erweiterte Schemakonfiguration, die bei speziellen Setups hilfreich sein kann.

Sparse Features

Durch das Codieren von Features mit geringer Dichte in Beispielen werden normalerweise mehrere Features eingeführt, von denen erwartet wird, dass sie für alle Beispiele dieselbe Wertigkeit haben. Zum Beispiel würde das Sparse-Feature:


WeightedCategories = [('CategoryA', 0.3), ('CategoryX', 0.7)]
mit separaten Features für Index und Wert:

WeightedCategoriesIndex = ['CategoryA', 'CategoryX']
WeightedCategoriesValue = [0.3, 0.7]
codiert, mit der Einschränkung, dass die Wertigkeit des Index- und Wert-Features für alle Beispiele übereinstimmen sollte. Diese Einschränkung kann im Schema durch Definieren einer sparse_feature explizit gemacht werden:

sparse_feature {
  name: 'WeightedCategories'
  index_feature { name: 'WeightedCategoriesIndex' }
  value_feature { name: 'WeightedCategoriesValue' }
}

Die Definition von Features mit geringer Dichte erfordert ein oder mehrere Index- und ein Wert-Feature, die sich auf Features beziehen, die im Schema vorhanden sind. Durch die explizite Definition von Features mit geringer Dichte kann TFDV überprüfen, ob die Valenzen aller referenzierten Features übereinstimmen.

Einige Anwendungsfälle führen ähnliche Valenzbeschränkungen zwischen Features ein, codieren jedoch nicht unbedingt ein Sparse-Feature. Die Verwendung der Sparse-Funktion sollte Sie entsperren, ist jedoch nicht ideal.

Schemaumgebungen

Standardmäßig wird bei Überprüfungen davon ausgegangen, dass alle Beispiele in einer Pipeline einem einzelnen Schema entsprechen. In einigen Fällen ist die Einführung geringfügiger Schemaabweichungen erforderlich. Beispielsweise sind Funktionen, die als Beschriftungen verwendet werden, während des Trainings erforderlich (und sollten validiert werden), fehlen jedoch während des Servierens. Umgebungen können verwendet werden, um solche Anforderungen auszudrücken, insbesondere default_environment() , in_environment() , not_in_environment() .

Angenommen, eine Funktion mit dem Namen "LABEL" ist für das Training erforderlich, wird jedoch voraussichtlich beim Servieren fehlen. Dies kann ausgedrückt werden durch:

  • Definieren Sie zwei unterschiedliche Umgebungen im Schema: ["SERVING", "TRAINING"] und ordnen Sie 'LABEL' nur der Umgebung "TRAINING" zu.
  • Verknüpfen Sie die Trainingsdaten mit der Umgebung "TRAINING" und die Serving-Daten mit der Umgebung "SERVING".
Schemaerstellung

Das Eingangsdatenschema wird als eine Instanz des TensorFlow angegebenen Schema .

Anstatt ein Schema manuell von Grund auf neu zu erstellen, kann sich ein Entwickler auf die automatische Schemakonstruktion von TensorFlow Data Validation verlassen. Insbesondere erstellt TensorFlow Data Validation automatisch ein anfängliches Schema basierend auf Statistiken, die über die in der Pipeline verfügbaren Trainingsdaten berechnet werden. Benutzer können dieses automatisch generierte Schema einfach überprüfen, nach Bedarf ändern, in ein Versionskontrollsystem einchecken und es zur weiteren Validierung explizit in die Pipeline verschieben.

TFDV enthält infer_schema() , um automatisch ein Schema zu generieren. Beispielsweise:

schema = tfdv.infer_schema(statistics=train_stats)
tfdv.display_schema(schema=schema)

Dies löst eine automatische Schemagenerierung basierend auf den folgenden Regeln aus:

  • Wenn ein Schema bereits automatisch generiert wurde, wird es unverändert verwendet.

  • Andernfalls überprüft TensorFlow Data Validation die verfügbaren Datenstatistiken und berechnet ein geeignetes Schema für die Daten.

Hinweis: Das automatisch generierte Schema ist bestmöglich und versucht nur, grundlegende Eigenschaften der Daten abzuleiten. Es wird erwartet, dass Benutzer es nach Bedarf überprüfen und ändern.

Training-Serving-Skew-Erkennung

Überblick

Die TensorFlow-Datenvalidierung kann Verteilungsverzerrungen zwischen Trainings- und Serving-Daten erkennen. Verteilungsversatz tritt auf, wenn sich die Verteilung der Merkmalswerte für Trainingsdaten erheblich von der Verteilung der Daten unterscheidet. Eine der Hauptursachen für den Verteilungsversatz ist die Verwendung eines völlig anderen Korpus zum Trainieren der Datengenerierung, um den Mangel an Anfangsdaten im gewünschten Korpus zu überwinden. Ein weiterer Grund ist ein fehlerhafter Stichprobenmechanismus, bei dem nur eine Teilstichprobe der zu trainierenden Serving-Daten ausgewählt wird.

Beispielszenario

Informationen zum Konfigurieren der Versatzerkennung für Schulungszwecke finden Sie im Handbuch Erste Schritte zur TensorFlow -Datenvalidierung.

Drifterkennung

Die Drifterkennung wird zwischen aufeinanderfolgenden Datenbereichen (dh zwischen Bereich N und Bereich N + 1) unterstützt, z. B. zwischen verschiedenen Tagen mit Trainingsdaten. Wir drücken die Drift in Form des L-Unendlichkeitsabstands für kategoriale Merkmale und der ungefähren Jensen-Shannon-Divergenz für numerische Merkmale aus. Sie können den Schwellenabstand so einstellen, dass Sie Warnungen erhalten, wenn die Drift höher als akzeptabel ist. Das Einstellen der richtigen Entfernung ist normalerweise ein iterativer Prozess, der Domänenkenntnisse und Experimente erfordert.

Informationen zum Konfigurieren der Drifterkennung finden Sie im Handbuch Erste Schritte mit TensorFlow-Datenvalidierung .

Verwenden von Visualisierungen zum Überprüfen Ihrer Daten

TensorFlow Data Validation bietet Tools zur Visualisierung der Verteilung von Feature-Werten. Wenn Sie diese Verteilungen in einem Jupyter-Notizbuch mithilfe von Facetten untersuchen , können Sie häufig auftretende Probleme mit Daten erkennen.

Funktionsstatistiken

Verdächtige Verteilungen identifizieren

Sie können häufige Fehler in Ihren Daten identifizieren, indem Sie eine Facettenübersicht verwenden, um nach verdächtigen Verteilungen von Feature-Werten zu suchen.

Unausgeglichene Daten

Ein unausgeglichenes Merkmal ist ein Merkmal, für das ein Wert vorherrscht. Unausgeglichene Features können natürlich auftreten. Wenn ein Feature jedoch immer den gleichen Wert hat, liegt möglicherweise ein Datenfehler vor. Um unausgeglichene Merkmale in einer Facettenübersicht zu erkennen, wählen Sie "Ungleichmäßigkeit" aus der Dropdown-Liste "Sortieren nach".

Die unausgeglichensten Features werden oben in jeder Feature-Typ-Liste aufgeführt. Der folgende Screenshot zeigt beispielsweise eine Funktion, bei der es sich ausschließlich um Nullen handelt, und eine zweite, die stark unausgeglichen ist, oben in der Liste "Numerische Funktionen":

Visualisierung unausgeglichener Daten

Gleichmäßig verteilte Daten

Ein gleichmäßig verteiltes Merkmal ist eines, für das alle möglichen Werte mit nahezu derselben Frequenz erscheinen. Wie bei unausgeglichenen Daten kann diese Verteilung natürlich auftreten, aber auch durch Datenfehler verursacht werden.

Um gleichmäßig verteilte Merkmale in einer Facettenübersicht zu erkennen, wählen Sie "Ungleichmäßigkeit" aus der Dropdown-Liste "Sortieren nach" und aktivieren Sie das Kontrollkästchen "Reihenfolge umkehren":

Histogramm einheitlicher Daten

Zeichenfolgendaten werden mithilfe von Balkendiagrammen dargestellt, wenn 20 oder weniger eindeutige Werte vorhanden sind, und als kumulatives Verteilungsdiagramm, wenn mehr als 20 eindeutige Werte vorhanden sind. Für Zeichenfolgendaten können gleichmäßige Verteilungen entweder als flache Balkendiagramme wie oben oder als gerade Linien wie unten angezeigt werden:

Liniendiagramm: kumulative Verteilung einheitlicher Daten

Fehler, die gleichmäßig verteilte Daten erzeugen können

Hier sind einige häufige Fehler, die gleichmäßig verteilte Daten erzeugen können:

  • Verwenden von Zeichenfolgen zur Darstellung von Nicht-Zeichenfolgen-Datentypen wie Datumsangaben. Beispielsweise haben Sie viele eindeutige Werte für ein Datum / Uhrzeit-Feature mit Darstellungen wie "2017-03-01-11-45-03". Eindeutige Werte werden gleichmäßig verteilt.

  • Einschließlich Indizes wie "Zeilennummer" als Features. Auch hier haben Sie viele einzigartige Werte.

Fehlende Daten

So überprüfen Sie, ob einem Feature Werte vollständig fehlen:

  1. Wählen Sie "Fehlender Betrag / Null" aus der Dropdown-Liste "Sortieren nach".
  2. Aktivieren Sie das Kontrollkästchen "Reihenfolge umkehren".
  3. Sehen Sie sich die Spalte "fehlend" an, um den Prozentsatz der Instanzen mit fehlenden Werten für ein Feature anzuzeigen.

Ein Datenfehler kann auch zu unvollständigen Feature-Werten führen. Beispielsweise können Sie erwarten, dass die Werteliste eines Features immer drei Elemente enthält, und feststellen, dass sie manchmal nur eines enthält. So suchen Sie nach unvollständigen Werten oder anderen Fällen, in denen Feature-Wertelisten nicht die erwartete Anzahl von Elementen aufweisen:

  1. Wählen Sie rechts im Dropdown-Menü "Diagramm anzeigen" die Option "Länge der Werteliste".

  2. Sehen Sie sich das Diagramm rechts neben jeder Feature-Zeile an. Das Diagramm zeigt den Bereich der Wertelistenlängen für das Feature. Die hervorgehobene Zeile im folgenden Screenshot zeigt beispielsweise eine Funktion mit einigen Wertelisten mit der Länge Null:

Facettenübersicht mit Feature mit Feature-Wertelisten mit der Länge Null

Große Skalierungsunterschiede zwischen Features

Wenn sich Ihre Funktionen stark unterscheiden, kann das Modell Schwierigkeiten beim Lernen haben. Wenn beispielsweise einige Funktionen von 0 bis 1 und andere von 0 bis 1.000.000.000 variieren, besteht ein großer Skalierungsunterschied. Vergleichen Sie die Spalten "max" und "min" über Features hinweg, um sehr unterschiedliche Maßstäbe zu finden.

Erwägen Sie, die Merkmalswerte zu normalisieren, um diese großen Abweichungen zu verringern.

Etiketten mit ungültigen Etiketten

Die Schätzer von TensorFlow haben Einschränkungen hinsichtlich der Art der Daten, die sie als Beschriftungen akzeptieren. Beispielsweise funktionieren binäre Klassifizierer normalerweise nur mit {0, 1} -Labels.

Überprüfen Sie die Beschriftungswerte in der Facettenübersicht und stellen Sie sicher, dass sie den Anforderungen der Schätzer entsprechen .