Vorhersage mit kontinuierlichen und kategorialen Funktionen

26

Einige Vorhersagemodelltechniken sind eher für den Umgang mit kontinuierlichen Prädiktoren ausgelegt, während andere für den Umgang mit kategorialen oder diskreten Variablen besser geeignet sind. Natürlich gibt es Techniken, um einen Typ in einen anderen umzuwandeln (Diskretisierung, Dummy-Variablen usw.). Gibt es jedoch Vorhersagemodelltechniken, mit denen beide Eingabetypen gleichzeitig verarbeitet werden können, ohne dass lediglich die Art der Features geändert werden muss? Wenn ja, funktionieren diese Modellierungstechniken in der Regel besser für Daten, für die sie natürlicher sind?

Das Beste, was mir bekannt ist, ist, dass Entscheidungsbäume normalerweise gut mit diskreten Daten umgehen und kontinuierliche Daten verarbeiten, ohne dass eine vorherige Diskretisierung erforderlich ist . Dies ist jedoch nicht ganz das, wonach ich gesucht habe, da die Aufteilung auf fortlaufende Features effektiv nur eine Form der dynamischen Diskretisierung ist.

Als Referenz werden hier einige verwandte, nicht doppelte Fragen aufgeführt:

Michael McGowan
quelle
1
Können Sie mehr darüber sagen, was Sie tun möchten? Natürlich können Sie mehrere Regressionen mit kontinuierlichen und kategorialen Kovariaten verwenden, um ein Vorhersagemodell zu erstellen. Das ist eher elementar. Meinen Sie damit, dass Sie stattdessen mehrere Antwortvariablen vorhersagen (wobei einige cont & einige cat sind, z. B.)?
gung - Wiedereinsetzung von Monica
@gung Wie können Sie multiple Regressionen mit kategorialen Kovariaten durchführen, ohne die kategorialen Prädiktoren in irgendeiner Weise in Zahlen umzuwandeln?
Michael McGowan
1
Die Zahlen bedeuten nichts - sie sind nicht wirklich numerisch . In Bezug auf die Art und Weise verwenden Sie ein Codierungsschema. Die Referenzzellencodierung (in der Regel als "Dummy-Codierung" bezeichnet) ist die häufigste, es gibt jedoch viele Schemata. Dies ist eine gute Ressource, um mehr über die Vielfalt der möglichen Schemata zu erfahren. In R müssen Sie dies beispielsweise nicht unbedingt tun. Wenn Sie jedoch einen Vektor oder Zeichendaten (dh Namen) einfügen, wird alles für Sie erledigt.
gung - Wiedereinsetzung von Monica
2
Ich fürchte, ich folge immer noch nicht den Impulsen hinter der Frage (ich bin ein bisschen langsam). Die kategorialen Variablen werden nicht in numerische Variablen "transformiert" oder "konvertiert". sie sind vertreten durch eine 1, aber das 1 nicht wirklich numerisch. Qualitative Prädiktoren sind bei multipler Regression nicht numerischer als in Entscheidungsbäumen (z. B. CART). Aus theoretischer Sicht gibt es einfach nichts; Wenn Sie aus praktischer Sicht versuchen, einige Codezeilen zu speichern, erledigt dies häufig Software (z. B. R) für Sie.
gung - Wiedereinsetzung von Monica
1
Fair genug, können Sie erklären, was Sie denken, ist da (aus einer theoretischen Perspektive)? Wie wandelt Dummy-Codierung eine kategoriale Variable in eine aussagekräftige numerische Variable um ? Wie kommt es, dass das, was CART tut, es der Variablen ermöglicht, ihre Kategorizität beizubehalten, das Dummy-Coding jedoch nicht? Ich weiß nicht, wie die Antworten auf diese Fragen aus Ihrer obigen Frage lauten könnten, und ich sehe Ihren vorherigen Beitrag nicht.
gung - Wiedereinsetzung von Monica

Antworten:

6

Soweit mir bekannt ist und ich dieses Problem in der Vergangenheit eingehend untersucht habe, gibt es keine vorhersagenden Modellierungstechniken (neben Bäumen, XgBoost usw.), mit denen beide Eingabetypen gleichzeitig verarbeitet werden können, ohne einfach die zu transformieren Art der Funktionen.

Beachten Sie, dass Algorithmen wie Random Forest und XGBoost eine Eingabe von gemischten Features akzeptieren, jedoch eine gewisse Logik anwenden, um diese während der Aufteilung eines Knotens zu verarbeiten. Stellen Sie sicher, dass Sie die Logik "unter der Haube" verstehen und dass Sie mit dem, was in der Blackbox passiert, einverstanden sind.

Doch Abstand / kernel basierte Modelle (beispielsweise K-NN, NN Regression, Support - Vektor - Maschinen) verwendet werden Mischtyp Merkmalsraum zu handhaben, indem eine „spezielle“ Abstandsfunktion definieren. Auf diese Weise wird für jedes Feature eine geeignete Abstandsmetrik angewendet (z. B. berechnen wir für ein numerisches Feature den euklidischen Abstand von 2 Zahlen, während wir für ein kategoriales Feature einfach den Überlappungsabstand von 2 Zeichenfolgenwerten berechnen). Also, die Entfernung / Ähnlichkeit zwischen Benutzeru1u2fichd(u1,u2)fich=(dichs-ceinteGOrichceinl(u1,u2)fichfichd(u1,u2)fich=dichs-numerichc(u1,u2)fichfichfichu1u2

Einige bekannte Distanzfunktionen für kategoriale Merkmale:

  • Levenshtien Abstand (oder irgendeine Form von "Abstand bearbeiten")

  • Längste gemeinsame Teilsequenzmetrik

  • Gower Abstand
  • Und mehr Metriken hier
Serendipity
quelle
5

Ich weiß, es ist schon eine Weile her, dass diese Frage gestellt wurde, aber wenn Sie sich immer noch mit diesem Problem (oder ähnlichen) befassen, sollten Sie die Verwendung von generalisierten additiven Modellen (GAMs) in Betracht ziehen. Ich bin kein Experte, aber mit diesen Modellen können Sie verschiedene Modelle kombinieren, um eine einzige Vorhersage zu erstellen. Das Verfahren zum Ermitteln der Koeffizienten für die von Ihnen eingegebenen Modelle löst alle auf einmal, sodass Sie ein verallgemeinertes additives Modell senden können, das Ihr Lieblingsmodell für kategoriale Prädiktoren und Ihr Lieblingsmodell für kontinuierliche Prädiktoren darstellt, und ein einzelnes Modell erhalten, das RSS oder minimiert welches andere Fehlerkriterium Sie auch verwenden möchten.

Das einzige Softwarepaket, von dem ich weiß, dass es eine Implementierung von GAMs gibt, ist die Sprache R, aber ich bin mir sicher, dass es noch andere gibt.

Forrest Cinelli
quelle
SAS hat ein Verfahren namens Proc Gam.
Alph
1
Die meisten wichtigen Statistikpakete (z. B. Stata) können wahrscheinlich GAMs implementieren. Genauer gesagt werden GAMs Dummy-Codes verwenden, um kategoriale Variablen als Prädiktoren darzustellen. Es ist nicht klar, was das OP bei der Suche nach einem Modell will, das kategoriale Prädiktoren als kategoriale verwendet, diese aber nicht durch Dummy-Codes darstellt. Dies ist jedoch wahrscheinlich nicht der Fall.
gung - Reinstate Monica
Willkommen zum Lebenslauf. Beachten Sie, dass Ihr Benutzername, Ihr Identicon und ein Link zu Ihrer Benutzerseite automatisch zu jedem von Ihnen verfassten Beitrag hinzugefügt werden, sodass Sie Ihre Beiträge nicht signieren müssen. Tatsächlich bevorzugen wir, dass Sie nicht.
gung - Reinstate Monica
4

Während die Diskretisierung fortlaufende Daten in diskrete Daten umwandelt, kann kaum gesagt werden, dass Dummy-Variablen kategoriale Daten in fortlaufende Daten umwandeln. Da Algorithmen auf Computern ausgeführt werden können, gibt es kaum einen Klassifizierungsalgorithmus, der kategoriale Daten NICHT in Dummy-Variablen umwandelt.

In demselben Sinne transformiert ein Klassifikator seine Prädiktoren letztendlich in eine diskrete Variable, die die Zugehörigkeit zu einer Klasse anzeigt (selbst wenn sie eine Klassenwahrscheinlichkeit ausgibt, wählen Sie letztendlich einen Cutoff). De facto funktionieren viele Klassifikatoren wie logistische Regression, zufällige Gesamtstruktur, Entscheidungsbäume und SVM mit beiden Datentypen einwandfrei.

Ich vermute, es wäre schwierig, einen Algorithmus zu finden, der mit kontinuierlichen Daten arbeitet, aber mit kategorialen Daten überhaupt nicht umgehen kann. Normalerweise finde ich, dass es mehr darauf ankommt, welche Art von Daten Sie auf der linken Seite Ihres Modells haben.

Erik
quelle
2
Nein, mein Punkt ist, dass die logistische Regression et al. Nicht in dem Sinne "funktioniert", wie ich es mit beiden Datentypen beschreibe. Sie verlangen, dass Sie zumindest in gewissem Sinne alle Prädiktoren als Zahlen oder keine von ihnen als Zahlen behandeln. Ich weiß zum Beispiel, dass man mit einer logistischen Regression oft gute Ergebnisse erzielen kann, wenn man so etwas wie "Geschlecht" als 1 für "männlich" und 0 für "weiblich" codiert. Ich frage mich jedoch, ob diese Art von Prozess mit einem bekannten Modellierungsparadigma vermieden werden kann.
Michael McGowan
1

Dies ist eine tiefe philosophische Frage, die häufig sowohl vom statistischen als auch vom maschinellen Lernende aus angesprochen wird. Einige sagen, Kategorisierung sei besser für diskrete bis kategoriale Indikatoren, damit die Pakete die Modelleingaben leicht verdauen können. Andere sagen, dass Binning zu Informationsverlust führen kann, kategoriale Variablen jedoch in {1,0} Indikatorvariablen konvertiert werden können / müssen, wobei die letzte Klasse für die Modellreste ausgelassen wird.

Das Buch - Angewandte lineare Regression (Kutner et al.) Erwähnt in den ersten Kapiteln die Logik der Einführung von Indikatorvariablen in das Modell. Möglicherweise gibt es auch einen ähnlichen Text.

Mein Standpunkt dazu ist vielleicht etwas zu weit hergeholt: Wenn wir uns die kategorialen Variablen wie Blöcke in einem experimentellen Design vorstellen, ist die Indikatorvariable eine natürliche Erweiterung der nicht experimentellen Datenanalyse. In Bezug auf Data-Mining-Algorithmen (Entscheidungsbaumfamilien) ist eine Kategorisierung (entweder manuell oder automatisiert) unumgänglich, die dem Modell zugeführt werden muss.

Daher gibt es möglicherweise kein Modell, das auf die gleiche Weise auf numerische und kategoriale Variablen spezialisiert ist (ohne Binning-Numerisch oder Verwendung von Indikatoren-Kategorisch).

KarthikS
quelle