2018 Update!
Sie können einen Einbettungsraum (dichten Vektorraum) für Ihre kategorialen Variablen erstellen. Viele von Ihnen sind mit word2vec und fastext vertraut, die Wörter in einen aussagekräftigen, dichten Vektorraum einbetten. Dieselbe Idee hier - Ihre kategorialen Variablen werden einem Vektor mit einer gewissen Bedeutung zugeordnet.
Aus dem Guo / Berkhahn-Papier :
Entity-Einbettung reduziert nicht nur die Speichernutzung und beschleunigt neuronale Netze im Vergleich zur One-Hot-Codierung, sondern enthüllt vor allem die intrinsischen Eigenschaften der kategorialen Variablen, indem sie ähnliche Werte nahe beieinander im Einbettungsraum abbilden. Wir haben es kürzlich bei einem Kaggle-Wettbewerb erfolgreich eingesetzt und konnten mit relativ einfachen Features den dritten Platz erreichen.
Die Autoren stellten fest, dass die Darstellung kategorialer Variablen auf diese Weise die Wirksamkeit aller getesteten Algorithmen für maschinelles Lernen, einschließlich der Zufallsgesamtstruktur, verbesserte.
Das beste Beispiel könnte die Anwendung der Technik von Pinterest sein, um verwandte Pins zu gruppieren:
Die Leute bei fastai haben kategorische Einbettungen implementiert und einen sehr schönen Blog-Beitrag mit begleitendem Demo-Notizbuch erstellt .
Zusätzliche Details und Erläuterungen
Ein neuronales Netz wird verwendet, um die Einbettungen zu erstellen, dh jedem kategorialen Wert einen Vektor zuzuweisen. Sobald Sie die Vektoren haben, können Sie sie in jedem Modell verwenden, das numerische Werte akzeptiert. Jede Vektorkomponente wird zu einer Eingangsvariablen. Wenn Sie beispielsweise 3-D-Vektoren zum Einbetten Ihrer kategorialen Farbliste verwenden, erhalten Sie möglicherweise Folgendes: Rot = (0, 1,5, -2,3), Blau = (1, 1, 0) usw. Sie würden drei verwenden Eingabevariablen in Ihrer zufälligen Gesamtstruktur, die den drei Komponenten entsprechen. Für rote Dinge ist c1 = 0, c2 = 1,5 und c3 = -2,3. Für blaue Dinge ist c1 = 1, c2 = 1 und c3 = 0.
Sie nicht wirklich brauchen ein neuronales Netzwerk verwenden Einbettungen zu erstellen (obwohl ich nicht empfehlen shying von der Technik entfernt). Es steht Ihnen frei, Ihre eigenen Einbettungen von Hand oder auf andere Weise zu erstellen, wenn dies möglich ist. Einige Beispiele:
- Ordnen Sie Farben RGB-Vektoren zu.
- Ordnen Sie Standorte Lat / Long-Vektoren zu.
- Ordnen Sie in einem politischen Modell der USA Städte einigen Vektorkomponenten zu, die Links- / Rechtsausrichtung, Steuerbelastung usw. darstellen.