2012-03-12 55 views

Respuesta

47

Suponiendo que se refiere a la 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 usa para calcular dos medidas de rendimiento predictivo, al considerar los valores mostrados en la columna de la rel error y xerror, y en función del parámetro de complejidad (primera columna) :

  • 0,76471 x 0,20988 = 0,1604973 (16,0%) es la tasa de error resubstitution (es decir, tasa de errores 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 el tasa de error de validación cruzada (utilizando 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.

en cuenta que es más o menos de acuerdo con la precisión 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 muestra de entrenamiento.

Cuestiones relacionadas