Viele Lernalgorithmen lernen entweder ein einzelnes Gewicht pro Merkmal oder verwenden Abstände zwischen Stichproben. Ersteres gilt für lineare Modelle wie die logistische Regression, die leicht zu erklären sind.
Angenommen, Sie haben einen Datensatz mit nur einem einzigen kategorialen Merkmal "Nationalität" mit den Werten "UK", "Französisch" und "USA". Nehmen Sie ohne Verlust der Allgemeinheit an, dass diese als 0, 1 und 2 codiert sind. Sie haben dann ein Gewicht w für dieses Merkmal in einem linearen Klassifikator, der eine Entscheidung basierend auf der Einschränkung w × x + b> 0 trifft oder äquivalent w × x <b.
Das Problem ist nun, dass das Gewicht w keine Drei-Wege-Wahl codieren kann. Die drei möglichen Werte von w × x sind 0, w und 2 × w. Entweder führen diese drei alle zu derselben Entscheidung (sie sind alle <b oder ≥ b) oder "UK" und "Französisch" führen zu derselben Entscheidung, oder "Französisch" und "USA" treffen dieselbe Entscheidung. Es gibt keine Möglichkeit für das Modell zu erfahren, dass "UK" und "US" das gleiche Label erhalten sollten, wobei "French" das ungerade ist.
Durch One-Hot-Codierung vergrößern Sie den Feature-Space effektiv auf drei Features, die jeweils ihre eigenen Gewichte erhalten. Die Entscheidungsfunktion lautet nun also w [UK] x [UK] + w [FR] x [FR] + w [US] x [US] <b, wobei alle x Boolesche Werte sind. In diesem Raum kann eine solche lineare Funktion jede Summe / Disjunktion der Möglichkeiten ausdrücken (z. B. "UK oder US", was ein Prädiktor für jemanden sein könnte, der Englisch spricht).
In ähnlicher Weise wird jeder Lernende, der auf Standard-Entfernungsmetriken (wie z. B. k-nächste Nachbarn) zwischen Stichproben basiert, ohne One-Hot-Codierung verwirrt. Bei der naiven Codierung und der euklidischen Entfernung beträgt die Entfernung zwischen Französisch und den USA 1. Die Entfernung zwischen den USA und Großbritannien beträgt 2. Bei der One-Hot-Codierung betragen die paarweisen Abstände zwischen [1, 0, 0], [0, 1 , 0] und [0, 0, 1] sind alle gleich √2.
Dies gilt nicht für alle Lernalgorithmen. Entscheidungsbäume und abgeleitete Modelle wie zufällige Gesamtstrukturen können, wenn sie tief genug sind, kategoriale Variablen ohne One-Hot-Codierung verarbeiten.
In Bezug auf die Erhöhung der Funktionen durch One-Hot-Codierung kann Feature-Hashing verwendet werden. Wenn Sie Hashing durchführen, können Sie festlegen, dass die Anzahl der Buckets viel geringer ist als die Anzahl der neu eingeführten Funktionen.
quelle
Wenn Sie Kategorien vorhersagen möchten, möchten Sie Elemente eines Satzes vorhersagen. Wenn Sie keine One-Hot-Codierung verwenden, lassen Sie die Kategorien Nachbarkategorien haben (z. B. wenn Sie stattdessen eine Regression mit den Ganzzahlen der Kategorien durchgeführt haben), die auf eine bestimmte Weise und in einer bestimmten Reihenfolge organisiert sind.
Was passiert nun, wenn Sie Kategorie 0 bis 0, Kategorie 1 bis 1 und Kategorie 2 bis 2 ohne One-Hot-Codierung zuweisen und die Vorhersage Ihres Algorithmus nicht sicher ist, ob er 0 oder 2 wählen soll: sollte er trotz 1 vorhersagen er denkt es ist entweder 0 oder 2?
Sie sehen, wohin es geht. Gleiches gilt für Ihre Dateneingaben: Wenn sie keine Nachbarn sein sollen, zeigen Sie sie Ihrem Algorithmus nicht als Nachbarn an.
quelle