hunt ejemplo diagrama decision clasificacion chaid bosques arboles arbol algoritmos algoritmo aleatorios r classification decision-tree rpart

ejemplo - bosques aleatorios en r



¿Cómo calcular la tasa de error de un árbol de decisión? (1)

¿Alguien sabe cómo calcular la tasa de error para un árbol de decisión con R? Estoy usando la función rpart() .


Suponiendo que se printcp() tasa de error de cálculo en la muestra utilizada para adaptarse al modelo, puede usar printcp() . Por ejemplo, usando el ejemplo en línea,

> library(rpart) > fit <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis) > printcp(fit) Classification tree: rpart(formula = Kyphosis ~ Age + Number + Start, data = kyphosis) Variables actually used in tree construction: [1] Age Start Root node error: 17/81 = 0.20988 n= 81 CP nsplit rel error xerror xstd 1 0.176471 0 1.00000 1.00000 0.21559 2 0.019608 1 0.82353 0.82353 0.20018 3 0.010000 4 0.76471 0.82353 0.20018

El Root node error se utiliza para calcular dos medidas de rendimiento predictivo, al considerar los valores que se muestran en el rel error y en la columna xerror , y según el parámetro de complejidad (primera columna):

  • 0.76471 x 0.20988 = 0.1604973 (16.0%) es la tasa de error de resubstitución (es decir, tasa de error calculada en la muestra de entrenamiento) - esto es aproximadamente

    class.pred <- table(predict(fit, type="class"), kyphosis$Kyphosis) 1-sum(diag(class.pred))/sum(class.pred)

  • 0.82353 x 0.20988 = 0.1728425 (17.2%) es la tasa de error con validación cruzada (usando 10 veces CV, ver xval en rpart.control() ; pero vea también xpred.rpart() y plotcp() que se basa en este tipo de medida). Esta medida es un indicador más objetivo de la precisión predictiva.

Tenga en cuenta que está más o menos de acuerdo con la precisión de clasificación del tree :

> library(tree) > summary(tree(Kyphosis ~ Age + Number + Start, data=kyphosis)) Classification tree: tree(formula = Kyphosis ~ Age + Number + Start, data = kyphosis) Number of terminal nodes: 10 Residual mean deviance: 0.5809 = 41.24 / 71 Misclassification error rate: 0.1235 = 10 / 81

donde Misclassification error rate se calcula a partir de la muestra de entrenamiento.