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

127

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

Maheshakya
quelle

Antworten:

260

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.

Fred Foo
quelle
4
Vielen Dank für diesen Lars, aber wenn wir eine OneHotEncoding durchführen, die die Anzahl der Funktionen effektiv erhöht, müssen wir nicht auch die Samples erhöhen, um sicherzustellen, dass sie nicht überpassen.
Manoj
@Manoj Im Vergleich zur offensichtlichen alternativen Darstellung kategorialer Variablen, bei der jede Ebene als eindeutige Ganzzahl codiert wird, ist dies meines Erachtens nicht wichtig: Sie benötigen in beiden Fällen ausreichende Statistiken.
Fred Foo
7
Gibt es Literatur, auf die Sie verweisen könnten, damit ich weiter darauf eingehen kann? Vielen Dank.
Dr. Knititall
1
Gibt es einen Vorteil bei der Verwendung einer weniger als vollständigen Rangmatrix (was Sie beim Erstellen eines regulären statistischen Modells nicht tun würden ), wenn Sie Techniken des maschinellen Lernens wie Boosten anwenden?
Steve S
2
Das sieht für mich genauso aus, wie ein Statistiker "Dummy-Variablen" nennen würde. Aber vielleicht wird Speicherplatz gespart.
Soldalma
3

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.

user3764384
quelle
0

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.

Guillaume Chevalier
quelle