Wie zu beschneiden eines Baumes in R?
Mache ich eine Klassifikation mittels rpart in R. Das Baum-Modell ist ausgebildet durch:
> tree <- rpart(activity ~ . , data=trainData)
> pData1 <- predict(tree, testData, type="class")
Die Genauigkeit für das Baum-Modell ist:
> sum(testData$activity==pData1)/length(pData1)
[1] 0.8094276
Lese ich tutorial zu beschneiden, den Baum durch cross-Validierung:
> ptree <- prune(tree,cp=tree$cptable[which.min(tree$cptable[,"xerror"]),"CP"])
> pData2 <- predict(ptree, testData, type="class")
Die Genauigkeit rate für den beschnittenen Baum ist immer noch der gleiche:
> sum(testData$activity==pData2)/length(pData2)
[1] 0.8094276
Ich will wissen, was ' s falsch mit meinem Baum beschnitten? Und wie kann ich den Rückschnitt des Baum-Modells mittels Kreuzvalidierung in R? Danke.
InformationsquelleAutor zfz | 2013-03-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie mit dem minimum cross-validiert, Fehler Baum. Eine alternative ist die Verwendung der kleinsten Baum, der ist innerhalb 1 der standard-Fehler der besten Baum (die Sie auswählen). Der Grund dafür ist, dass angesichts der CV Schätzungen der Fehler, die kleinste Struktur innerhalb 1 der standard-Fehler ist tun nur so gut einen job bei der Vorhersage, wie die besten (niedrigsten CV-Fehler) - Baum an, doch er tut es mit weniger "Bedingungen".
Plot der Kosten-Komplexität vs Baum-Größe für die ungestutzten Baum über:
Finden den Baum, der Links von dem mit minimalem Fehler, deren cp-Wert liegt innerhalb der Fehlerbalken der man mit minimalem Fehler.
Es könnte viele Gründe, warum Beschneidung ist nicht auf dem Baum angebracht. Zum Beispiel der beste Baum könnte das sein, wo der Algorithmus beendet nach der Beendigung Regeln wie angegeben in
?rpart.control
.InformationsquelleAutor Gavin Simpson