Ich bin mit dem rpart Paket wie folgt:Verwenden von rpart: Wie erhalten Sie mehr Variabilität bei Vorhersagen?
model <- rpart(totalUSD ~ ., data = df.train)
Ich stelle fest, dass mehr als 80k Zeilen, rpart ist verallgemeinern es Prognosen ist in nur drei verschiedene Gruppen wie unten im Bild gezeigt:
Ich sehe mehrere configuration options for the rpart method; aber ich verstehe sie nicht ganz.
Gibt es eine Möglichkeit, rpart so zu konfigurieren, dass es erstellt mehr Vorhersagen (statt nur drei); nicht so starke Gruppen, aber mehr Ebenen dazwischen?
Der Grund, warum ich frage, ist, weil mein Kostenschätzer ziemlich einfach aussieht, da es nur eine von drei Zahlen zurückgibt! Hier
ist ein Beispiel für meine Daten:
structure(list(totalUSD = c(9726.6, 730.14, 750, 200, 60.49,
310.81, 151.23, 145.5, 3588.13, 400), durationDays = c(730, 724,
730, 189, 364, 364, 364, 176, 730, 1095), familySize = c(4, 1,
2, 1, 3, 2, 1, 1, 4, 4), serviceName = c("Service5",
"Service6", "Service9", "Service4",
"Service1", "Service2", "Service1", "Service3",
"Service7", "Service8"), homeLocationGeoLat = c(37.09024,
10.691803, 37.09024, 35.86166, 55.378051, 35.86166, 51.165691,
-30.559482, -30.559482, 41.87194), homeLocationGeoLng = c(-95.712891,
-61.222503, -95.712891, 104.195397, -3.435973, 104.195397, 10.451526,
22.937506, 22.937506, 12.56738), hostLocationGeoLat = c(55.378051,
37.09024, 55.378051, 55.378051, 37.09024, 1.352083, 55.378051,
37.09024, 23.424076, 1.352083), hostLocationGeoLng = c(-3.435973,
-95.712891, -3.435973, -3.435973, -95.712891, 103.819836, -3.435973,
-95.712891, 53.847818, 103.819836), geoDistance = c(6838055.10555534,
4532586.82063172, 6838055.10555534, 7788275.0443749, 6838055.10555534,
3841784.48282769, 1034141.95021832, 14414898.8246973, 6856033.00945242,
10022083.1525388)), .Names = c("totalUSD", "durationDays", "familySize",
"serviceName", "homeLocationGeoLat", "homeLocationGeoLng", "hostLocationGeoLat",
"hostLocationGeoLng", "geoDistance"), row.names = c(25601L, 6083L,
24220L, 20235L, 8372L, 456L, 8733L, 27257L, 15928L, 24099L), class = "data.frame")
können Sie uns eine Datenprobe oder ein reproduzierbares Beispiel geben? – roman
Ja, ich habe es zu meiner Frage hinzugefügt. Vielen Dank. – user1477388
Ok, ich habe ein wenig mit deinen Daten gespielt. Es ist schwierig, das Problem neu zu erstellen, da der zu erstellende Baum viel mehr Daten benötigt. Ich nehme an, dass die Parameter so eingestellt sind, dass Sie zwei Splits in Ihrem Baum haben (zwei erklärende Variablen von Bedeutung), was zu 3 Endknoten führt. Der Baum sagt den Mittelwert in den Regionen an jedem Endknoten voraus. Wenn Sie genauere Vorhersagen wünschen, sollten Sie etwas wie zufällige Gesamtstrukturen ausprobieren oder einen einzelnen Baum anpassen, anstatt ihn anzupassen. Dann können Sie mit der Kreuzvalidierung die Anzahl der gemittelten Bäume (zufällige Wälder) oder den Schrumpfungsparameter (Boosting) einstellen. – roman