Ich verwende die Funktion randomForest
in Rs randomForest
Paket, um eine Regression durchzuführen. Wenn ich jedoch versuche, einen Interaktionsbegriff in die folgenden Codes aufzunehmen:
library(MASS)
library(randomForest)
Boston_f <- within(Boston, factor(rad))
mdl <- randomForest(lstat ~ rad * . , data = Boston_f)
Das Ergebnis mdl$term
beinhaltet zwar Interaktion, aber wenn ich in die Bäume schaue, die mdl
verwendet werden,
getTree(mdl, 1, T)
Ich kann keine geteilte Variable mit dem Interaktionsterm finden.
Weiß jemand, wie man Interaktionsbegriffe mit randomForest
oder mit anderen Funktionen einbezieht?
r
interaction
random-forest
Yifei Liu
quelle
quelle
Antworten:
Baumbasierte Modelle berücksichtigen Variablen nacheinander, was sie praktisch macht, um Interaktionen zu berücksichtigen, ohne sie anzugeben. Interaktionen, die für die Vorhersage nützlich sind, können mit einem ausreichend großen Wald leicht erfasst werden, sodass kein expliziter Interaktionsbegriff erforderlich ist.
Wenn Sie glauben , dass die Interaktion wichtig ist, Sie könnten manuell den Interaktionsterm (zum Beispiel Ihrer Definition von schaffen
formula
innerhalb dermodel.frame
Funktion, die neuen Spalten für Ihre Interaktion Bedingungen schaffen wird). In Ihrem Fall würde dies jedoch die Anzahl der Variablen fast verdoppeln, da Sie Interaktionen zwischenrad
und allen anderen Funktionen erstellen . Daher ist dies wahrscheinlich nicht ratsam.Siehe auch Einbeziehen von Interaktionsbegriffen in Random Forest, das die inhärente Fähigkeit von Random Forests demonstriert, interagierende Variablen im Vergleich zu linearen Methoden zu erkennen.
quelle