Während AN6U5 eine sehr gute Antwort gegeben hat, wollte ich einige Punkte als zukünftige Referenz hinzufügen. Wenn wir One Hot Encoding (OHE) und Label Encoding in Betracht ziehen , müssen wir versuchen zu verstehen, welches Modell Sie erstellen möchten. Die zwei Kategorien von Modellen, die wir betrachten werden, sind:
- Baumbasierte Modelle : Gradient Boosted Decision Trees und Random Forests.
- Nicht baumbasierte Modelle : Linear, kNN oder Neural Network based.
Überlegen wir uns, wann OHE und wann Label Encoding beim Erstellen von baumbasierten Modellen angewendet werden müssen.
Wir wenden OHE an, wenn:
- Wenn die Werte, die in der Beschriftungscodierung nahe beieinander liegen , Zielwerten entsprechen, die nicht nahe beieinander liegen (nicht lineare Daten).
- Wenn das kategoriale Merkmal nicht ordinal ist (Hund, Katze, Maus).
Wir wenden Label-Codierung an, wenn:
- Das kategoriale Merkmal ist ordinal (Jr. kg, Sr. kg, Grundschule, Gymnasium usw.).
- Wenn wir einen Label-Encoder entwickeln können, mit dem enge Labels ähnlichen Kategorien zugeordnet werden : Dies führt zu einer Verringerung der Streuverluste in der Locke und somit zu einer Verkürzung der Ausführungszeit.
- Wenn die Anzahl der kategorialen Features im Dataset sehr groß ist: Die One-Hot-Codierung eines kategorialen Features mit einer großen Anzahl von Werten kann zu (1) einem hohen Speicherverbrauch führen und (2) zu dem Fall, dass nicht kategoriale Features nur selten vom Modell verwendet werden. Sie können sich mit dem 1. Fall befassen, wenn Sie spärliche Matrizen verwenden. Der zweite Fall kann auftreten, wenn Sie einen Baum nur mit einer Teilmenge von Features erstellen. Wenn Sie beispielsweise über 9 numerische Features und 1 kategoriales Feature mit 100 eindeutigen Werten verfügen und dieses kategoriale Feature einmal im laufenden Betrieb codiert haben, erhalten Sie 109 Features. Wenn ein Baum nur mit einer Teilmenge von Features erstellt wird, werden die ersten 9 numerischen Features selten verwendet. In diesem Fall können Sie die Größe der Parametersteuerung für diese Teilmenge erhöhen. In xgboost heißt es colsample_bytree, in sklearns Random Forest max_features.
Wenn Sie mit OHE fortfahren möchten, wie von @ AN6U5 vorgeschlagen, können Sie PCA mit OHE kombinieren.
Überlegen wir, wann OHE und Label Encoding beim Erstellen nicht baumbasierter Modelle angewendet werden sollen.
Um die Label-Codierung anzuwenden, muss die Abhängigkeit zwischen Feature und Ziel linear sein, damit die Label-Codierung effektiv genutzt werden kann.
Wenn die Abhängigkeit nicht linear ist, können Sie auch OHE verwenden.
Hinweis: Einige der Erklärungen stammen aus Gewinnen eines Data Science-Wettbewerbs von Coursera.