Ich mache eine Regression mit Random Forests, um Preise basierend auf mehreren Attributen vorherzusagen. Code wird in Python mit Scikit-learn geschrieben.
Wie entscheiden Sie, ob Sie Ihre Variablen mit exp
/ transformieren sollen, log
bevor Sie sie für das Regressionsmodell verwenden? Ist es notwendig, einen Ensemble-Ansatz wie Random Forest zu verwenden?
Antworten:
Die Art und Weise, wie zufällige Wälder erstellt werden, ist für monotone Transformationen der unabhängigen Variablen nicht relevant. Splits werden völlig analog sein. Wenn Sie nur Genauigkeit anstreben, werden Sie keine Verbesserung feststellen. Da Random Forests komplexe nichtlineare (Warum nennt man diese lineare Regression?) Beziehungen und Variableninteraktionen im laufenden Betrieb finden kann, können Sie die Informationen, die dieser Algorithmus ermöglicht, glätten, wenn Sie Ihre unabhängigen Variablen transformieren das richtig.
Gelegentlich werden zufällige Wälder nicht als Black Box behandelt und für Schlussfolgerungen verwendet. Sie können beispielsweise die von ihr bereitgestellten Größen für die Variablenwichtigkeit interpretieren oder eine Art von Randeffekten Ihrer unabhängigen Variablen auf Ihre abhängige Variable berechnen. Dies wird normalerweise als partielle Abhängigkeitsdiagramme dargestellt. Ich bin mir ziemlich sicher, dass diese letzte Sache stark von der Größe der Variablen beeinflusst wird. Dies ist ein Problem, wenn Sie versuchen, Informationen von Random Forests zu erhalten, die aussagekräftiger sind. In diesem Fall kann es hilfreich sein, die Variablen zu transformieren (standardisieren), wodurch die partiellen Abhängigkeitsdiagramme vergleichbar werden können. Nicht ganz sicher, muss darüber nachdenken.
Vor nicht allzu langer Zeit habe ich versucht, die Anzahl der Daten mithilfe einer Zufallsstruktur vorherzusagen. Die Regression auf der Quadratwurzel und das natürliche Protokoll der abhängigen Variablen haben ein wenig geholfen, nicht viel und nicht genug, um das Modell beizubehalten.
Einige Pakete, in denen Sie zufällige Gesamtstrukturen verwenden können:
https://uc-r.github.io/lime
https://cran.r-project.org/web/packages/randomForestExplainer/index.html
https://pbiecek.github.io/DALEX_docs/2-2-useCaseApartmetns.html
quelle
Wenn Sie @JEquihua wiederholen, wird sich die Genauigkeit der Random Forest-Vorhersage nicht verbessern.
Beachten Sie auch, dass Sie Probleme verursachen können, wenn Sie sowohl den ursprünglichen Prädiktor als auch den transformierten Prädiktor beibehalten (wie dies bei der linearen Regression häufig der Fall ist). Dies liegt daran, dass RF zufällig eine Teilmenge der Variablen auswählt, um jeden Baum zu vergrößern, und Sie die transformierte Variable im Wesentlichen zweimal eingefügt haben. Wenn es sich um einen starken Prädiktor handelt, wird er verwendet, und Ihre zufälligen Wälder sind nicht so unkorreliert wie sie möglicherweise waren, was zu einer höheren Varianz führt.
quelle