Ich mache eine Regressionsaufgabe - muss ich Daten für randomForest (R-Paket) normalisieren (oder skalieren)? Und ist es notwendig, auch Zielwerte zu skalieren? Und wenn - ich die Skalierungsfunktion aus dem Caret-Paket verwenden möchte, aber nicht gefunden habe, wie ich Daten zurückerhalten kann (entkalken, denormalisieren). Kennen Sie keine andere Funktion (in einem Paket), die bei der Normalisierung / Denormalisierung hilfreich ist? Danke, Milan
r
random-forest
gutompf
quelle
quelle
scale
Funktion gehört nicht dazucaret
. Es ist Teil des "Basis" R-Pakets. Es gibt eineunscale
Funktion, die die Transformation umkehrt.Antworten:
Nein, für zufällige Gesamtstrukturen ist keine Skalierung erforderlich.
Die Natur von RF ist so, dass Konvergenz- und numerische Präzisionsprobleme, die manchmal die in der logistischen und linearen Regression verwendeten Algorithmen sowie in neuronalen Netzen auslösen können, nicht so wichtig sind. Aus diesem Grund müssen Sie Variablen nicht wie bei einem NN in eine gemeinsame Skala umwandeln.
Sie erhalten kein Analogon zu einem Regressionskoeffizienten, der die Beziehung zwischen jeder Prädiktorvariablen und der Antwort misst. Aus diesem Grund müssen Sie auch nicht überlegen, wie solche Koeffizienten zu interpretieren sind, was von variablen Messskalen beeinflusst wird.
quelle
Die Skalierung wird durchgeführt, um Daten zu normalisieren, sodass einem bestimmten Feature keine Priorität eingeräumt wird. Die Rolle der Skalierung ist vor allem bei entfernungsbasierten Algorithmen wichtig, die eine euklidische Entfernung erfordern.
Random Forest ist ein baumbasiertes Modell und erfordert daher keine Feature-Skalierung.
Dieser Algorithmus erfordert eine Partitionierung, auch wenn Sie Normalisierung anwenden, dann wäre auch> das Ergebnis dasselbe.
quelle
Ich sehe weder auf der Hilfeseite noch in der Vignette Vorschläge, die darauf hinweisen, dass eine Skalierung für eine Regressionsvariable in erforderlich ist
randomForest
. In diesem Beispiel bei Stats Exchange wird auch keine Skalierung verwendet.Kopie meines Kommentars: Die
scale
Funktion gehört nicht zu pkg: caret. Es ist Teil des "Basis" R-Pakets. Es gibt eineunscale
Funktion in Paketen GRT und DMwR , die die Umwandlung rückgängig zu machen, oder Sie können einfach multiplizieren mit der Skala Attribute und dann die Mittelattributwerte hinzuzufügen.Ihre Vorstellung, warum "Normalisierung" durchgeführt werden muss, erfordert möglicherweise eine kritische Prüfung. Der Test der Nichtnormalität wird erst nach Abschluss der Regressionen benötigt und ist möglicherweise überhaupt nicht erforderlich, wenn bei der Methode der Anpassungsgüte keine Normalitätsannahmen vorliegen. Also: Warum fragst du? Die Suche in SO und Stats.Exchange kann sich als nützlich erweisen: Zitat # 1 ; Zitat # 2 ; Zitat Nr. 3
Die
boxcox
Funktion ist eine häufig verwendete Transformation, wenn man keine Vorkenntnisse darüber hat, wie eine Verteilung sein sollte, und wenn man wirklich eine Transformation durchführen muss. Es gibt viele Fallstricke bei der Anwendung von Transformationen. Die Tatsache, dass Sie die Frage stellen müssen, wirft Bedenken auf, dass Sie möglicherweise weitere Konsultationen oder Selbststudien benötigen.quelle
scale
. Ihre Folgefrage war hilfreich, um den Rekord zu korrigieren.Ratet mal, was wird im folgenden Beispiel passieren? Stellen Sie sich vor, Sie haben 20 Vorhersagemerkmale, von denen 18 im Bereich [0; 10] und die anderen 2 im Bereich [0; 1.000.000] liegen (aus einem Beispiel aus der Praxis). Frage 1: Welche Funktionsbedeutungen werden von Random Forest zugewiesen? Frage 2: Was passiert mit der Feature-Wichtigkeit nach der Skalierung der 2 Features mit großer Reichweite?
Skalierung ist wichtig. Random Forest reagiert weniger empfindlich auf die Skalierung als andere Algorithmen und kann mit "grob" skalierten Features arbeiten.
quelle
Wenn Sie dem Datensatz Interaktionen hinzufügen möchten - das heißt, eine neue Variable ist eine Funktion anderer Variablen (normalerweise einfache Multiplikation) und Sie nicht spüren, wofür diese neue Variable steht (kann sie nicht interpretieren), sollten Sie diese Variable mit berechnen skalierte Variablen.
quelle
Random Forest verwendet von
information gain / gini coefficient
Natur aus Anwendungen, die im Gegensatz zu vielen anderen Modellen des maschinellen Lernens (wie z. B. k-means Clustering, PCA usw.) nicht von der Skalierung betroffen sind. Es könnte jedoch "wohl" die Konvergenz beschleunigen, wie in anderen Antworten angedeutetquelle