So fügen Sie einen Interaktionsterm in ein zufälliges Waldmodell ein

9

Ich verwende die Funktion randomForestin Rs randomForestPaket, 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$termbeinhaltet zwar Interaktion, aber wenn ich in die Bäume schaue, die mdlverwendet werden,

getTree(mdl, 1, T)

Ich kann keine geteilte Variable mit dem Interaktionsterm finden.

Weiß jemand, wie man Interaktionsbegriffe mit randomForestoder mit anderen Funktionen einbezieht?

Yifei Liu
quelle
1
Obwohl diese Frage nach R-Code fragt, glaube ich, dass sie durch ein statistisches / ML-Missverständnis motiviert ist. Wenn dies angesprochen wird, werden die R-Code-spezifischen Aspekte außer Kraft gesetzt. Als solches denke ich, dass dies offen bleiben sollte.
Gung - Reinstate Monica
Fragen ausschließlich zur Funktionsweise von Software sind hier nicht themenbezogen , aber möglicherweise ist hier eine echte statistische Frage begraben. Möglicherweise möchten Sie Ihre Frage bearbeiten, um das zugrunde liegende statistische Problem zu klären. Wenn Sie die statistischen Konzepte verstehen, sind die softwarespezifischen Elemente möglicherweise selbstverständlich oder zumindest leicht aus der Dokumentation zu entnehmen.
Gung - Reinstate Monica

Antworten:

12

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 formulainnerhalb der model.frameFunktion, 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 zwischen radund 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.

Michael Veale
quelle