Zufällige Gesamtstruktur: Was ist, wenn ich weiß, dass eine Variable wichtig ist?

12

Mein Verständnis ist, dass die zufällige Gesamtstruktur zufällig ausgewählte Variablen auswählt , um jeden Entscheidungsbaum zu erstellen. Wenn also mtry = ncol / 3 ist, wird jede Variable durchschnittlich in 1/3 der Bäume verwendet. Und 2/3 der Bäume werden sie nicht benutzen.

Aber was ist, wenn ich weiß, dass eine einzelne Variable wahrscheinlich sehr wichtig ist? Wäre es sinnvoll, die Wahrscheinlichkeit, dass diese Variable in jedem Baum ausgewählt wird, manuell zu erhöhen? Ist es mit dem randomForest-Paket in R machbar?

Benoit_Plante
quelle

Antworten:

6

Beachten Sie, dass mtryist die Anzahl der Variablen, die bei jedem Split als Kandidaten zufällig ausgewählt werden. Und aus diesen Kandidaten wird das Beste ausgewählt, um die Aufteilung durchzuführen. Somit ist der von Ihnen genannte Anteil nicht vollständig erfüllt. Wichtiger Variablen erscheinen häufiger und weniger wichtig - weniger häufig. Wenn die Variable also wirklich sehr wichtig ist, besteht eine große Wahrscheinlichkeit, dass sie in einem Baum ausgewählt wird und Sie keine manuelle Korrektur benötigen. Manchmal (selten) muss jedoch das Vorhandensein einer Variablen (unabhängig von ihrer möglichen Bedeutung) in der Regression erzwungen werden. Soweit ich weiß, unterstützt das R-Paket Random Forest diese Möglichkeit nicht. Wenn diese Variable jedoch keine Interkorrelation mit anderen hat, können Sie mit dieser Variablen eine gewöhnliche Regression als Einzelterm durchführen und dann eine zufällige Gesamtstrukturregression für die Residuen dieser gewöhnlichen Regression ausführen. Wenn Sie die Möglichkeit der Auswahl vorgegebener Variablen noch korrigieren möchten, können Sie den Quellcode bei der nächsten Kompilierung ändern.

O_Devinyak
quelle
2
Wenn Sie n Bäume benötigen, um eine annehmbare Annäherung für Ihre Zielfunktion zu erhalten, aber nach variabler Wichtigkeit suchen, können Sie so etwas wie 5 * n oder 10 * n Bäume im Wald setzen. Sie konvergieren mehr, nicht bei "Anpassungsfehlern", sondern bei Änderungen der variablen Wichtigkeit.
EngrStudent
5

Seit Juni 2015 hat ein neuer vielversprechender RF-Algorithmus auf R-CRAN namens "Ranger" diese Funktion. Es wurde mit split.select.weights optimiert : "Numerischer Vektor mit Gewichten zwischen 0 und 1, der die Wahrscheinlichkeit darstellt, Variablen zum Teilen auszuwählen."

Soren Havelund Welling
quelle