2013-07-04 4 views

Antwort

225

Viele Lernalgorithmen lernen entweder ein einzelnes Gewicht pro Merkmal oder sie 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 kategorischen Merkmal "Nationalität" mit den Werten "UK", "Französisch" und "US". Nehmen wir an, dass ohne Einschränkung der Allgemeinheit diese als 0, 1 und 2 kodiert sind. Sie haben dann ein Gewicht w für dieses Merkmal in einem linearen Klassifikator, der basierend auf der Einschränkung w × x + b> 0 eine Art Entscheidung trifft oder äquivalent w × x < b.

Das Problem ist jetzt, dass das Gewicht w nicht eine 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 "Französisch" führen zu derselben Entscheidung, oder "Französisch" und "US" geben die gleiche Entscheidung. Es gibt keine Möglichkeit für das Modell zu lernen, dass "UK" und "US" dasselbe Label bekommen sollten, mit "French" das Seltsame.

Durch One-Hot-Codierung, sprengen Sie effektiv den Feature-Raum auf drei Funktionen, die jeweils ihre eigenen Gewichte bekommen, so dass die Entscheidung Funktion ist nun [UK] x [UK] + w [FR] x [ FR] + w [US] x [US] < b, wobei alle x boolesch 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 Lerner, der auf Standard-Abstandsmetriken (wie k-nächste Nachbarn) zwischen Stichproben basiert, ohne One-Hot-Codierung verwirrt werden. Mit der naiven Kodierung und der euklidischen Distanz beträgt die Entfernung zwischen Französisch und USA 1. Die Entfernung zwischen USA und Großbritannien ist 2. Bei der Ein-Hot-Kodierung sind 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.

+3

Diese Antwort ist wirklich gut. Vielen Dank. – goh

+4

Vielen Dank für dieses Lars, aber wenn wir ein OneHotEncoding machen, das die Anzahl der Features effektiv erhöht, müssen wir auch nicht die Samples erhöhen, um sicherzustellen, dass es nicht überfrachtet wird. – Manoj

+0

@Manoj Verglichen mit der offensichtlichen alternativen Darstellung kategorialer Variablen, die jede Ebene als eine ganzzahlige Ganzzahl kodieren, glaube ich nicht, dass es wichtig ist: Sie benötigen ausreichende Statistiken in jeder Hinsicht. –

2

In Bezug auf die Erhöhung der Features durch One-Hot-Encoding kann man Feature Hashing verwenden. Wenn Sie Hashing durchführen, können Sie angeben, dass die Anzahl der Buckets wesentlich geringer ist als die Anzahl der neu eingeführten Features.

Verwandte Themen