it-swarm.com.de

Warum verbessert eine Hot-Codierung die Leistung beim maschinellen Lernen?

Ich habe festgestellt, dass eine One-Hot-Codierung, die für einen bestimmten Datensatz (eine Matrix) und als Trainingsdaten für Lernalgorithmen verwendet wird, im Vergleich zur Verwendung der Originalmatrix selbst als Trainingsdaten signifikant bessere Ergebnisse hinsichtlich der Vorhersagegenauigkeit liefert. Wie kommt es zu dieser Leistungssteigerung?

121
maheshakya

Viele Lernalgorithmen lernen entweder eine einzelne Gewichtung 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 "US". Nehmen Sie ohne Einschränkung 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 auf der Grundlage der Bedingung 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 zu derselben Entscheidung (sie sind alle <b oder ≥b), oder "UK" und "French" führen zu derselben Entscheidung, oder "French" und "US" treffen dieselbe Entscheidung. Es gibt keine Möglichkeit für das Modell, zu erfahren, dass "UK" und "US" dasselbe Label haben sollten, "French" das eine oder andere.

Durch One-Hot-Codierung können Sie den Featurebereich effektiv in drei Features aufteilen, die jeweils ihre eigene Gewichtung erhalten. Die Entscheidungsfunktion lautet nun 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", die ein Prädiktor für jemanden sein könnte, der Englisch spricht).

In ähnlicher Weise wird jeder Lernende, der auf Standarddistanzmetriken (wie 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 Frankreich und den USA 1. Die Entfernung zwischen den USA und Großbritannien beträgt 2. Bei der One-Hot-Codierung jedoch die paarweisen Entfernungen 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.

252
Fred Foo

In Bezug auf die Erhöhung der Funktionen durch One-Hot-Codierung kann Feature-Hashing verwendet werden. Wenn Sie Hashing ausführen, können Sie festlegen, dass die Anzahl der Buckets viel geringer ist als die Anzahl der neu eingeführten Features.

3
user3764384