Wie wähle ich die Aufteilung in Random Forest für kategoriale Prädiktoren (Features) aus?

8

Ich verstehe, wie die beste Aufteilung für zufällige Gesamtstrukturen für numerische Prädiktoren (Merkmale) gewählt wird.

Numerische Prädiktoren werden dann sortiert, dann wird für jeden Wert eine Gini-Verunreinigung oder Entropie berechnet und ein Schwellenwert ausgewählt, der die beste Aufteilung ergibt. Aber wie wird die beste Aufteilung für den kategorialen Prädiktor gewählt, da es keine spezifische Reihenfolge gibt?

Ajay
quelle

Antworten:

9

Die übliche Vanille-Implementierung versucht alle möglichen Kombinationen Ihrer Kategorien. Diese Kombinationen werden als Ganzzahl ausgedrückt, die angibt, welche Kategorien ausgewählt und welche bei der Aufteilung weggelassen werden. Es geht von links nach rechts. Wenn Sie beispielsweise eine Variable mit den Klassen "Katze", "Hund", "Kuh", "Ratte" haben, würde sie mögliche Teilungen durchlaufen, was etwa Folgendes bedeutet:

Hund gegen den Rest = 0100 (denken Sie daran, von links nach rechts zu lesen)

Katze gegen den Rest = 1000

Allein, aber auch

Hund und Katze gegen Kuh und Ratte = 1100

Kuh und Katze gegen Hund und Ratte = 1010

Und dann, wie erwähnt, werden ganze Zahlen verwendet, um dies zu handhaben und die Aufteilung darzustellen:

library(R.utils)
> intToBin(12)
[1] "1100"
JEquihua
quelle
0

Wald ist eine Ensemble-Methode von Bäumen. Ich denke, Ihre Frage basiert eher auf dem Algorithmus von Bäumen zum Teilen von Variablen. Es gibt zwei Arten von kategorialen Prädiktoren: den geordneten Faktor und den nicht geordneten Faktor.

Der geordnete Faktor ähnelt der numerischen Variablen und die zufällige Gesamtstruktur findet den Schnittpunkt, während der letztere einen anderen Algorithmus wie unten verwendet.

Es wird versucht, die erste Ebene des Faktors als Teilung zu erfassen und das Modell anzupassen und die Leistung mit Verlustfunktion zu ermitteln. Versuchen Sie dann, die zweite Ebene zu finden und sie erneut anzupassen und die Leistung zu ermitteln und so weiter. Am Ende findet es die besten Aufteilungsstufenkombinationen entsprechend der besten Leistung.

Sie werden also feststellen, dass es viel länger dauert und Speicher für das Baummodell oder das zufällige Waldmodell, um Faktoren als numerisch anzupassen.

Vincent
quelle
0

Wenn Ihre Features kategorisch sind, fällt mir als erstes ein, für jeden möglichen Wert in der Kategorie ein binäres Feature zu erstellen.

Wenn Sie also eine Funktion haben, die der "Mobiltelefonmarke" entspricht und nur "Samsung, Apple, HTC oder Nokia" sein kann, würde ich sie als vier Kategorien darstellen (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0) bzw. (0, 0, 0, 1). Auf diese Weise wählt der Schwellenwert bei jedem Split zwischen einer Marke oder einer der anderen, ohne seltsame Auswirkungen zu haben.

Hoffe das hilft!

Cristina
quelle
0

Wählen Sie entweder einige zufällige Kategorien und verwenden Sie die Kategorie, die die beste Aufteilung ergibt, oder wählen Sie einige zufällige Kombinationen von Kategorien und verwenden Sie die Kombination, die die beste Aufteilung ergibt.

Ich denke, es spielt keine Rolle, welche der beiden Methoden Sie wählen, da die Aufteilung auf eine Kombination von Kategorien an einem einzelnen Knoten durch Aufteilen auf eine einzelne Kategorie an mehreren Knoten simuliert werden kann.

ihr Mann
quelle