Die Auswahl von CP-Wert zur Entscheidung Baumpfleger mit rpart
Ich verstehe, dass die gängige Praxis, um wählen Sie die CP-Wert ist durch die Wahl der untersten Ebene mit der minimalen xerror
Wert. Jedoch, in meinem folgenden Fall, mit cp <- fit$cptable[which.min(fit$cptable[,"xerror"]),"CP"]
mir 0.17647059
was in keine split-oder einfach nur root nach dem beschneiden mit diesem Wert.
> myFormula <- Kyphosis~Age+Number+Start
> set.seed(1)
> fit <- rpart(myFormula,data=data,method="class",control=rpart.control(minsplit=20,xval=10,cp=0.01))
> fit$cptable
CP nsplit rel error xerror xstd
1 0.17647059 0 1.0000000 1.000000 0.2155872
2 0.01960784 1 0.8235294 1.000000 0.2155872
3 0.01000000 4 0.7647059 1.058824 0.2200975
Gibt es eine andere alternative/gute Praxis zu wählen, der CP-Wert?
InformationsquelleAutor Ivan | 2016-06-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Regel, eine cptable wie die, die Sie haben, ist eine Warnung, dass der Baum wahrscheinlich nicht verwenden, und wahrscheinlich nicht in der Lage, zu verallgemeinern, auch auf zukünftige Daten. Die Antwort ist also nicht zu finden, einen anderen Weg zu wählen, cp, sondern eher um ein nützliches Baum, wenn Sie können, oder, Ihre Niederlage zuzugeben und zu sagen, dass auf der Grundlage der Beispiele und Funktionen, die wir haben, können wir ein Modell erstellen, die prädiktive der Kyphose.
In Ihrem Fall, die alle nicht unbedingt verloren. Die Daten sind sehr klein und die Kreuz-Validierung, die Anlass zu den xerror Spalte ist sehr volatil. Wenn Sie die Samen Ihrer Saat auf 2 oder 3 sehen Sie sehr unterschiedliche Antworten in dieser Spalte (manche sogar schlechter).
So eine Sache, die interessant ist, auf diese Daten, ist die Steigerung der Anzahl der cross-Validierung Falten, um die Anzahl der Beobachtungen (so dass Sie bekommen, LOOCV). Wenn Sie dies tun:
finden Sie eine CP-Tabelle, die Sie wie besser! (Beachten Sie, dass ein samenkorn ist nicht mehr notwendig, da die Falten sind die gleichen, jedes mal).
control = rpart.control(xval = [data.length], minsplit = 2, minbucket = 1, cp = 0)
werden Ihnen die meisten overfitted Reihenfolge der Bäume mit die informativsten k-fold cross-validation. Mitplotcp(model)
undprintcp(model)
erkunden Sie die ganze Bandbreite der möglichen BäumeInformationsquelleAutor Alan Chalk
Im Allgemeinen (und in Anbetracht Sparsamkeit) sollte man lieber die kleineren Baum aus diese mit mindestens xerror den Wert, das heißt, alle diejenigen, deren xerror Wert ist innerhalb [min(xerror) - xstd; min(xerror) + xstd].
Laut rpart vignette: "Jedes Risiko, innerhalb eines standard-Fehler der erreichten minimum gekennzeichnet ist, die als gleichwertig zu den Mindestanforderungen (D. H. als Teil der Hochebene). Dann ist das einfachste Modell, das, unter all diesen "gebunden" auf dem plateau, wird gewählt."
Finden Sie unter: https://stackoverflow.com/a/15318542/2052738
Können Sie wählen Sie die am besten geeignete cp-Wert (zu beschneiden, die ersten
your.tree
, overfitted mitrpart
) mit einem ad-hoc-Funktion, wie z.B.:[In deinem Beispiel, alle Bäume sind gleich so Größe 1 (keine Risse) ist es bevorzugt, als die gewählte Reaktion bereits erklärt]
InformationsquelleAutor FairMiles