Probleme mit der One-Hot-Codierung im Vergleich zur Dummy-Codierung


11

Mir ist bewusst, dass kategoriale Variablen mit k Ebenen mit k-1 Variablen in Dummy-Codierung codiert werden sollten (ähnlich für mehrwertige kategoriale Variablen). Ich habe mich gefragt, wie problematisch eine One-Hot-Codierung (dh die Verwendung von k Variablen) gegenüber einer Dummy-Codierung für verschiedene Regressionsmethoden ist, hauptsächlich lineare Regression, bestrafte lineare Regression (Lasso, Ridge, ElasticNet), baumbasierte (zufällige Wälder) , Gradientenverstärkungsmaschinen).

Ich weiß, dass bei der linearen Regression Multi-Kollinearitätsprobleme auftreten (obwohl ich in der Praxis die lineare Regression mit OHE ohne Probleme angepasst habe).

Muss jedoch in allen eine Dummy-Codierung verwendet werden, und wie falsch wären die Ergebnisse, wenn eine One-Hot-Codierung verwendet wird?

Mein Fokus liegt auf der Vorhersage in Regressionsmodellen mit mehreren kategorialen Variablen (mit hoher Kardinalität), daher bin ich nicht an Konfidenzintervallen interessiert.


10
Ich behaupte, es ist falsch, die beiden zu unterscheiden. Dummy- Variablen und One-Hot- Variablen sind vollständige Synonyme. Der erste Begriff ist älter und stammt aus der Statistik, während der zweite jünger ist und aus dem maschinellen Lernen stammt. Das dritte und formalere Synonym sind Kontrastvariablen vom Indikatortyp . Die Frage, ob alle nichtredundanten k- oder k-1-Variablen in der Menge solcher Elementarvariablen verwendet werden sollen, hat nichts mit dieser Terminologie zu tun und hängt von der Art der Analyse und vom konkreten Algorithmus oder Programm ab.
ttnphns

2
(Forts.) Beispielsweise erlaubt eine Regressionssoftware aufgrund der Singularität normalerweise nicht, alle k einzugeben, aber eine äquivalente allgemeine lineare Modellierungssoftware kann dies zulassen, da sie einen pseudoinversen Ansatz verwendet.
ttnphns

1
Ich bin bei @ttnphns, beide sind nur schreckliche Namen. Ich bevorzuge die vollständige Codierung und die einmalige Codierung .
Matthew Drury

2
Entschuldigung für die Terminologie, dies sind die Standardbegriffe, die ich von Praktikern (und ähnlich orientierten Büchern) verwendet habe. Das Problem der Kollinearität tritt nur in linearen (nichtpenalisierten Modellen) auf? Nicht jede Software stoppt die Eingabe aller k (z. B. Pythons Scikit-Learn, korrigiere mich, wenn ich falsch
liege

@MatthewDrury Eine meiner Lieblingsbeschwerden sind doppelte Begriffe / Phrasen, die sich in den Bereich der statistischen Analyse einschleichen, wie "One-Hot-Codierung" und "A / B-Tests". Jeder sollte sich an die ältere "Dummy-Codierung" und "Hypothesentest" halten, um Verwirrung zu vermeiden.
RobertF

Antworten:


7

Das Problem bei der Darstellung einer kategorialen Variablen mit Ebenen mit Variablen in der Regression besteht darin, dass, wenn das Modell auch einen konstanten Term hat, die Terme linear abhängig sind und das Modell daher nicht identifizierbar ist. Wenn das Modell beispielsweise und , ist jede Wahl des Parametervektors nicht von . Obwohl Software möglicherweise bereit ist, Ihnen Schätzungen für diese Parameter zu geben, sind sie nicht eindeutig bestimmt und daher wahrscheinlich nicht sehr nützlich.k μ = a 0 + a 1 × 1 + a 2 × 2 × 2 = 1 - X 1 ( β 0 , β 1 , β 2 ) ( β 0 + β 2 ,kkμ=a0+a1X1+a2X2X2=1X1(β0,β1,β2)(β0+β2,β1β2,0)

Durch die Bestrafung wird das Modell identifizierbar, aber die redundante Codierung wirkt sich angesichts der obigen Angaben immer noch auf seltsame Weise auf die Parameterwerte aus.

Die Auswirkung einer redundanten Codierung auf einen Entscheidungsbaum (oder ein Ensemble von Bäumen) besteht wahrscheinlich darin, dass das betreffende Merkmal im Vergleich zu anderen übergewichtet wird, da es mit einer zusätzlichen redundanten Variablen dargestellt wird und daher häufiger ausgewählt wird, als dies sonst der Fall wäre spaltet sich.


1
Ich glaube nicht, dass es einen Grund gibt, einen Abschnitt in einen Baum oder ein Baumensemble aufzunehmen. Ich glaube, das ist etwas Besonderes für lineare Modelle. Für baumbasierte Modelle denke ich, dass die richtige Idee nicht das Abfangen, sondern die vollständige Codierung ist.
Matthew Drury

@MatthewDrury Ich denke, Sie haben Recht mit dem Abfangen, aber selbst dann scheint für einen Baum redundante Codierung von begrenztem Nutzen zu sein. Wenn ein Feature beispielsweise binär ist, was ist der Unterschied zwischen dem Teilen in der ersten Klasse und dem Teilen in der zweiten Klasse? Nichts, soweit ich das beurteilen kann.
Kodiologe

Es ist wahr, aber ich denke, die volle Symmetrie beizubehalten ist der einfachste Weg, um alles offensichtlich fair und interpretierbar zu halten.
Matthew Drury

1

Der Kodiologe hatte eine großartige Antwort (+1). One-Hot-Codierung im Vergleich zu Dummy-Codierung Die Codierungsmethoden sind in Bezug auf die Entwurfsmatrix gleich und befinden sich im selben Raum mit unterschiedlicher Basis. (obwohl die One-Hot-Codierung mehr Spalten enthält)

Daher, wenn Sie sich auf Genauigkeit anstatt auf Interpretierbarkeit konzentrieren. Zwei Codierungsmethoden machen keinen Unterschied.


1
Um pedantisch zu sein, ist die One-Hot-Version keine Basis (weil sie linear abhängig ist); es überspannt nur den gleichen Raum. Aber sind Sie sicher, dass die Codierung keinen Unterschied für die Genauigkeit macht? Insbesondere im Fall einer bestraften Regression denke ich, dass das endgültig ausgewählte Modell unterschiedliche Vorhersagen treffen wird.
Kodiologe

@ Kodiologist danke für die Korrektur mich auf der Basis Problem.
Haitao Du

@Kodiologe, warum wird die Genauigkeit bei der regulierten linearen Methode unterschiedlich sein?
Haitao Du

4
Bei der regulierten Regression sollten Sie immer eine vollständige Codierung verwenden (dh nicht auslassen, ich kann die von Ihnen verwendeten Namen nicht gerade halten und ziehe es vor, sie nicht selbst zu verwenden). Dies liegt daran, dass der Abschnitt nicht bestraft wird. Wenn Sie also auf die Wirkung eines Levels als nicht Teil des Abschnitts schließen, ist es schwer zu sagen, dass Sie alle Ebenen gleichermaßen bestrafen. Schließen Sie stattdessen immer alle Ebenen ein, damit jede in Bezug auf die Strafe symmetrisch ist.
Matthew Drury

1
@ Matthew Drury, danke für diesen letzten Kommentar. Könnten Sie es bitte in einer Antwort erweitern? Nur für eine einfache lineare Regression ist eine Dummy-Codierung erforderlich?
user90772

1

Ich fühle mich die beste Antwort auf diese Frage in den Kommentaren von @MatthewDrury begraben liegt, in dem es heißt , dass es ist ein Unterschied , und dass Sie die scheinbar redundante Spalte in jedem regularisierten Ansatz verwenden sollten. @ MatthewDrury argumentiert

[Bei regulierter Regression] wird der Abschnitt nicht bestraft. Wenn Sie also auf die Wirkung eines Levels als nicht Teil des Abschnitts schließen, ist es schwer zu sagen, dass Sie alle Ebenen gleichermaßen bestrafen. Schließen Sie stattdessen immer alle Ebenen ein, damit jede in Bezug auf die Strafe symmetrisch ist.

Ich denke, er hat Recht.


Sie sollten also je nach Situation eine Hot-Codierungsvariable mit kEbenen oder mit k-1Ebenen verwenden. Gibt es zusätzlich zu Ihrer Aussage (reguliert / nicht reguliert) Richtlinien, was in allen Fällen zu tun ist?
Dan Chaltiel

Meine Regel lautet: Wenn es keine Regularisierung gibt, wie bei der klassischen ANOVA, verwenden Sie k-1-Ebenen. Wenn es eine Regularisierung gibt, wie bei Bayes'schen Methoden oder eine Regression mit L2-Regularisierung, verwenden Sie k Ebenen.
Ben Ogorek
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.