Normalverteilung und Random Forest

Oct 29 2020

Ich habe eine große Tabelle im Datenrahmen (600.000 Zeilen) mit einer y-Spalte (der Variablen, die ich vorhersagen möchte) und anderen 4 anderen Spalten, die das X sind. Ich habe den RF-Regressor ausgeführt und habe einen Kern von 0,87, wenn ich ihn auf dem ausführe trainieren und testen.

Als ich jedoch versuchte, einen anderen Datensatz vorherzusagen (der mit 1 Million Zeilen sehr ähnlich ist), erhielt ich eine Punktzahl von 0,65. Also habe ich angenommen, dass das überpasst. Als ich zu verstehen versuchte, warum es passiert, ging ich zurück zur Verteilung der y-Spalte, die so aussieht:

Meine Frage ist, kann es sein, dass meine Modellleistung schlecht ist, weil meine Daten nicht normal verteilt sind (oder sehr schief sind ...)? Müssen alle Variablen normalverteilt sein? Wie berechnet sich die Punktzahl der zufälligen Waldregression? Der ID-Wert ist 0,25 und die Vorhersage ist 0,26. Zählt er als korrekte Vorhersage?

Antworten

1 MykolaZotko Oct 29 2020 at 20:56

Wenn Sie baumbasierte Algorithmen wie zufällige Gesamtstrukturen verwenden, sollte die Datenverteilung kein Problem darstellen. Lineare Algorithmen hängen mehr von der Verteilung Ihrer Variablen ab. Um zu überprüfen, ob Sie überangepasst sind, können Sie versuchen, Ihre Trainingsdaten vorherzusagen und das Ergebnis mit den Testdaten zu vergleichen. Die Punktzahl hängt von Ihrer Bewertungsmetrik ab. Wenn Sie verwenden, erhalten scikit-learnSie R ^ 2 als Ihre Metrik.

Der Koeffizient R ^ 2 ist definiert als (1 - u / v), wobei u die Restsumme der Quadrate ((y_true - y_pred) ** 2) .sum () und v die Gesamtsumme der Quadrate ((y_true -) ist y_true.mean ()) ** 2) .sum ().