Löschen Sie eine der Spalten, wenn Sie One-Hot-Codierung verwenden


21

Ich verstehe, dass maschinelles Lernen ein Problem darstellen kann, wenn Ihr Dataset stark korrelierte Features aufweist, da diese dieselben Informationen effektiv codieren.

Kürzlich hat jemand darauf hingewiesen, dass Sie beim einmaligen Codieren einer kategorialen Variablen korrelierte Features erhalten, sodass Sie eine davon als "Referenz" ablegen sollten.

Wenn Sie beispielsweise das Geschlecht als zwei Variablen kodieren is_maleund is_femalezwei Merkmale erzeugen, die perfekt negativ korrelieren, schlagen sie vor, nur eines davon zu verwenden, die Grundlinie effektiv auf männlich festzulegen und dann zu prüfen, ob die Spalte is_female für den Vorhersagealgorithmus wichtig ist .

Das ergab für mich einen Sinn, aber ich habe online nichts gefunden, was darauf hindeuten könnte, dass dies der Fall ist. Ist das also falsch oder fehlt mir etwas?

Mögliches (nicht beantwortetes) Duplikat: Ist die Kollinearität von One-Hot-codierten Features für SVM und LogReg von Bedeutung?


8
you end up with correlated features, so you should drop one of them as a "reference"Dummy-Variablen oder Indikatorvariablen (dies sind die beiden Namen, die in der Statistik verwendet werden und synonym zu "One-Hot-Codierung" beim maschinellen Lernen sind) sind sowieso paarweise korreliert, seien es alle k- oder k-1-Variablen. Das bessere Wort ist also "statistisch / informationsredundant" anstatt "korreliert".
TTNPHNS

Die Menge aller k Dummies ist die multikollineare Menge, denn wenn Sie Werte von k-1 Dummies in den Daten kennen, kennen Sie automatisch die Werte dieses letzten Dummies. Bei einigen Datenanalysemethoden oder -algorithmen müssen Sie eines der k löschen. Andere sind in der Lage, mit allen k fertig zu werden.
TTNPHNS

@ttnphns: danke, das macht sinn. Macht die Beibehaltung aller k-Werte sie theoretisch zu schwächeren Merkmalen, die mit einer Dimensionsreduktion beseitigt werden könnten / sollten? Eines der Argumente für die Verwendung von so etwas wie PCA ist häufig das Entfernen von korrelierten / redundanten Features. Ich frage mich, ob es in diese Kategorie fällt, wenn alle k Variablen beibehalten werden.
dasboth

Does keeping all k values theoretically make them weaker features. Nein (obwohl ich nicht 100% sicher bin, was Sie mit "schwächer" meinen). using something like PCAEs ist nur für den Fall zu beachten, dass die PCA für eine Gruppe von Dummies, die dieselbe kategoriale Variable darstellen, wenig praktischen Sinn hat, da die Korrelationen innerhalb der Gruppe von Dummies lediglich die Beziehungen zwischen den Kategorienfrequenzen widerspiegeln (wenn also alle Frequenzen gleich sind, sind alle Korrelationen gleich) bis 1 / (k-1)).
TTNPHNS

Wenn Sie mit Ihrem Modell die Wichtigkeit von Features bewerten (z. B. bei einer zufälligen Gesamtstruktur), wird dann die Wichtigkeit dieser Variablen unterschätzt, wenn Sie alle k-Werte einbeziehen? Wie in, erhalten Sie eine "wahrere" Schätzung der Wichtigkeit des Geschlechts, wenn Sie nur eine is_maleVariable verwenden, im Gegensatz zu beiden Optionen? Dies ist in diesem Zusammenhang möglicherweise nicht sinnvoll und kann nur dann problematisch sein, wenn Sie zwei verschiedene Variablen haben, die tatsächlich dieselbe Information codieren (z. B. Höhe in Zoll und Höhe in cm).
dasboth

Antworten:


22

Dies hängt von den Modellen (und möglicherweise sogar von der Software) ab, die Sie verwenden möchten. Bei linearer Regression oder verallgemeinerten linearen Modellen, die anhand der maximalen Wahrscheinlichkeit (oder der kleinsten Quadrate) geschätzt werden (in R bedeutet dies die Verwendung von Funktionen lmoder glm), müssen Sie eine Spalte weglassen. Andernfalls wird eine Meldung über einige Spalten „wegen Singularitäten weggelassen“ get .

Aber wenn Sie solche Modelle mit Regularisierung schätzen , zum Beispiel Grat, Lasso oder das elastische Netz, dann sollten Sie keine Säulen weglassen. Die Regularisierung berücksichtigt die Singularitäten, und was noch wichtiger ist, die Vorhersage kann davon abhängen, welche Spalten Sie weglassen. Das passiert nicht, wenn Sie keine Regularisierung verwenden .

Verwenden Sie bei anderen Modellen dieselben Prinzipien. Wenn die erhaltenen Vorhersagen davon abhängen, welche Spalten Sie weglassen, tun Sie es nicht. Ansonsten ist es in Ordnung.

Bisher werden in dieser Antwort nur lineare (und einige leicht nichtlineare) Modelle erwähnt. Aber was ist mit sehr nichtlinearen Modellen wie Bäumen und zufälligen Wäldern? Die Ideen zur kategorialen Codierung wie One-Hot stammen hauptsächlich aus linearen Modellen und Erweiterungen. Es gibt wenig Grund zu der Annahme, dass aus diesem Kontext abgeleitete Ideen für Bäume und Wälder unverändert gelten sollten! Für einige Ideen siehe Random Forest Regression mit spärlichen Daten in Python .

β,β2,β3β1=0β2-β1,β3-β1


Ich kann zustimmen, dass die Wahl der Referenzvariablen das Ergebnis der regulierten Regression beeinflusst, aber ich bin mir nicht sicher, ob es besser ist, alle Variablen unverändert zu lassen, als eine zu löschen. Haben Sie einen Grund dafür?
Kota Mori

Nun, nur zwei Alternativen ... Wenn alle Ebenen beibehalten werden, bleibt die Invarianz erhalten, und es gibt keine Willkür. Wenn Sie andere Gründe haben, die Anzahl der Ebenen zu verringern, wie z. B. zu viele, sollten Sie uns dies mitteilen
kjetil b halvorsen
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.