Beispiel für das Generieren von Einbettungen

In diesem Beispiel wird gezeigt, wie die Einbettungen generiert werden, die in einem Messwert für die überwachte Ähnlichkeit verwendet werden.

Angenommen, Sie haben dasselbe Immobilien-Dataset, das Sie beim Erstellen einer manuellen Ähnlichkeitsmessung verwendet haben:

FunktionTyp
PreisPositive Ganzzahl
Größe Positiver Gleitkommawert in Einheiten von Quadratmetern
PostleitzahlGanzzahl
Anzahl der SchlafzimmerGanzzahl
HaustypEin Textwert aus „Einzelfamilie“, „Mehrfamilienhaus“, „Wohnung“ oder „Eigentum“
Garage0/1 für Nein/Ja
FarbenMultivalente Kategorie: ein oder mehrere Werte aus den Standardfarben „weiß“, „gelb“, „grün“ usw.

Daten vorverarbeiten

Bevor Sie Featuredaten als Eingabe verwenden können, müssen Sie die Daten vorverarbeiten. Die Vorverarbeitungsschritte basieren auf den Schritten, die Sie beim Erstellen einer manuellen Ähnlichkeitsmessung durchgeführt haben. Übersicht:

FunktionTyp oder VerteilungAktion
PreisPoisson-Verteilung Quantisieren und skalieren Sie auf [0,1].
GrößePoisson-Verteilung Quantisieren und skalieren Sie auf [0,1].
PostleitzahlKategorial In Längen- und Breitengrad umwandeln, quantifizieren und auf [0,1] skalieren.
Anzahl der SchlafzimmerGanzzahl Schnappen Sie Ausreißer und skalieren Sie auf [0,1].
HaustypKategorial In One-Hot-Codierung konvertieren...
Garage0 oder 1 Unverändert beibehalten
FarbenKategorial In RGB-Werte konvertieren und als numerische Daten verarbeiten.

Weitere Informationen zur One-Hot-Codierung finden Sie unter Einbettungen: Kategoriale Eingabedaten.

Predictor oder Autoencoder auswählen

Zum Generieren von Einbettungen können Sie entweder einen Autoencoder oder einen Predictor auswählen. Standardmäßig ist ein Autoencoder ausgewählt. Sie wählen stattdessen einen Predictor aus, wenn bestimmte Merkmale in Ihrem Dataset eine Ähnlichkeit feststellen. Sehen wir uns beide Fälle genauer an.

Vorhersagung trainieren

Sie müssen diese Features als Trainingslabels für Ihren DNN auswählen, die wichtig sind, um die Ähnlichkeit zwischen Ihren Beispielen zu ermitteln. Angenommen, der Preis ist für die Ermittlung der Ähnlichkeit zwischen Häusern am wichtigsten.

Wählen Sie den Preis als Trainingslabel aus und entfernen Sie ihn aus den Eingabemerkmaldaten zum DNN. Trainieren Sie den DNN, indem Sie alle anderen Features als Eingabedaten verwenden. Für das Training ist die Verlustfunktion einfach der MSE zwischen vorhergesagtem und tatsächlichem Preis. Informationen zum Trainieren eines DNN finden Sie unter Neuronale Netzwerke trainieren.

Autoencoder trainieren

Trainieren Sie einen Autoencoder für unser Dataset mit den folgenden Schritten:

  1. Die verborgenen Ebenen des Autoencoders müssen kleiner sein als die Eingabe- und Ausgabeebenen.
  2. Berechnen Sie den Verlust für jede Ausgabe wie unter Überwachte Ähnlichkeitsmessung beschrieben.
  3. Erstellen Sie die Verlustfunktion, indem Sie die Verluste für jede Ausgabe summieren. Achten Sie darauf, dass der Verlust für jedes Feature gleich gewichtet wird. Da Farbdaten beispielsweise in RGB verarbeitet werden, gewichten Sie jede RGB-Ausgabe mit einem Drittel.
  4. Trainieren Sie den DNN.

Einbettungen aus dem DNN extrahieren

Extrahieren Sie die Einbettung für ein Beispiel aus dem DNN, nachdem Sie Ihren DNN trainiert haben. Extrahieren Sie die Einbettung mithilfe der Featuredaten des Beispiels als Eingabe und lesen Sie die Ausgaben der endgültigen ausgeblendeten Ebene. Diese Ausgaben bilden den Einbettungsvektor. Denken Sie daran, dass die Vektoren für ähnliche Häuser näher beieinander liegen als Vektoren für unterschiedliche Häuser.

Als Nächstes erfahren Sie, wie Sie die Ähnlichkeit von Beispielpaaren mithilfe ihrer Einbettungsvektoren quantifizieren können.