Comment tailler un arbre dans la R?
Je suis en train de faire un classement à l'aide de rpart dans R. Le modèle d'arbre est formé par:
> tree <- rpart(activity ~ . , data=trainData)
> pData1 <- predict(tree, testData, type="class")
La précision de ce modèle d'arbre est:
> sum(testData$activity==pData1)/length(pData1)
[1] 0.8094276
J'ai lu un tutoriel de tailler l'arbre par validation croisée:
> ptree <- prune(tree,cp=tree$cptable[which.min(tree$cptable[,"xerror"]),"CP"])
> pData2 <- predict(ptree, testData, type="class")
Le taux d'exactitude de l'arbre élagué est toujours le même:
> sum(testData$activity==pData2)/length(pData2)
[1] 0.8094276
Je veux savoir quel est le problème avec mon arbre élagué? Et comment puis-je tailler le modèle d'arbre à l'aide de la validation croisée dans la R? Merci.
OriginalL'auteur zfz | 2013-03-10
Vous devez vous connecter pour publier un commentaire.
Vous avez utilisé le minimum de validation croisée erreur de l'arbre. Une alternative est d'utiliser le plus petit arbre qui est à moins de 1 erreur standard de la meilleure arbre (celui que vous êtes à la sélection). La raison pour cela est que, étant donné les CV des estimations de l'erreur, le plus petit arbre dans un délai de 1 erreur standard est en train de faire un aussi bon travail à la prédiction que le meilleur (le plus bas CV d'erreur) de l'arbre, mais il le fait avec moins de "conditions".
Terrain, le coût de la complexité vs la taille de l'arbre pour le de l'onu-arbre élagué par:
Trouver l'arbre à gauche de l'un avec un minimum d'erreur dont la valeur de pc se trouve dans la barre d'erreur de l'un avec un minimum d'erreur.
Il pourrait y avoir de nombreuses raisons pour l'élagage est de ne pas nuire à la monté de l'arbre. Par exemple le meilleur de l'arbre pourrait être celui où l'algorithme arrêté selon les règles d'arrêt comme indiqué dans
?rpart.control
.OriginalL'auteur Gavin Simpson