Ich versuche zu verstehen, wie ich mithilfe der Wahrscheinlichkeitsschätzung kategoriale Variablen codieren kann, habe aber bisher nur wenig Erfolg gehabt.
Anregungen wäre sehr dankbar.
feature-engineering
kleiner Zwerg
quelle
quelle
Antworten:
Ich habe auch dieses Thema gelernt und Folgendes gefunden:
Diese Art der Codierung wird Likelihood-Codierung , Impact-Codierung oder Zielcodierung genannt
Die Idee ist, Ihre kategoriale Variable unter Verwendung der Zielvariablen zu codieren (kontinuierlich oder kategorial, abhängig von der Aufgabe). Wenn Sie beispielsweise eine Regressionsaufgabe haben, können Sie Ihre kategoriale Variable mit dem Mittelwert des Ziels codieren. Für jede Kategorie berechnen Sie den entsprechenden Mittelwert des Ziels (unter dieser Kategorie) und ersetzen den Wert einer Kategorie durch diesen Mittelwert.
Wenn Sie eine Klassifizierungsaufgabe haben, berechnen Sie die relative Häufigkeit Ihres Ziels in Bezug auf jeden Kategoriewert.
Aus mathematischer Sicht bedeutet diese Kodierung eine Wahrscheinlichkeit Ihres Ziels, die von jedem Kategoriewert abhängig ist.
Wenn Sie es auf einfache Weise tun, wie ich oben beschrieben habe, werden Sie wahrscheinlich eine voreingenommene Schätzung erhalten. Aus diesem Grund verwenden sie in der Kaggle-Community normalerweise zwei Ebenen der Kreuzvalidierung. Lies diesen Kommentar von raddar hier . Das entsprechende Notizbuch ist hier .
Das Zitat:
Eine andere Implementierung dieser Codierung ist hier .
In R library vtreat wurde die Impact-Codierung implementiert. Siehe diesen Beitrag .
In der CatBoost-Bibliothek stehen zahlreiche Optionen für die Codierung von kategorialen Variablen zur Verfügung, einschließlich der Zielcodierung .
Es gibt noch keine solche Kodierung in sklearn.
quelle
Die Zielcodierung ist jetzt in sklearn über das category_encoders-Paket verfügbar .
Wie von Josh im Kommentar oben vermerkt.
quelle
Die Likelihood-Codierung ist beim Scikit-Lernen immer noch nicht verfügbar. Sie können dies tun, indem Sie ein Wörterbuch erstellen und dann eine Ersetzungsfunktion ausführen.
quelle