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

InformationsquelleAutor teo6389 | 2012-03-12

1 Comentario

  1. 52

    Suponiendo que la media de la computación de la tasa de error en la muestra utilizada para ajustar el modelo, puede utilizar printcp(). Por ejemplo, utilizando el ejemplo de la línea de

    > 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

    La Root node error se utiliza para calcular dos medidas de predicción de rendimiento, al considerar los valores que se muestran en la rel error y xerror columna, y dependiendo de la complejidad de parámetro (primera columna):

    • 0.76471 x 0.20988 = 0.1604973 (16.0%) es el resubstitution tasa de error (es decir, la tasa de error calculado en la formación de la muestra) — 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 el validado por cruz de la tasa de error (utilizando 10 veces CV, ver xval en rpart.control(); pero véase también xpred.rpart() y plotcp() que se basa en que este tipo de medida). Esta medida es una más objetivo indicador de la precisión predictiva.

    Nota que es más o menos de acuerdo con la exactitud de la clasificación de 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 formación de la muestra.

    • Esto me da una pista importante, gracias!

Dejar respuesta

Please enter your comment!
Please enter your name here