Estoy leyendo sobre la clasificación de carros con rpart en R, y después de todo debemos calcular el error de clasificación, dado que y es la columna que almacena las clases y x es la columna de las variables y fit=rpart(y~.,x)
¿Cómo podemos interpretar este valor? W=sum(Y==predict(fit,x,type="class"))/length(Y)
?
Respuesta
¿Demasiados anuncios?La última fórmula puede no ser exacta, pero parece ser la proporción de valores ajustados en los que se clasifica como una determinada clase.
A continuación se muestra un ejemplo y la respuesta es una variable binaria (H o L). Lo que parece apuntar la última fórmula sería length(fit.val[fit.val=="H"])/length(df$y)
o length(fit.val[fit.val=="L"])/length(df$y)
.
Por último, normalmente es la matriz de confusión la que evalúa los resultados de la clasificación. Como se muestra en cm
Los elementos diagonales son una clasificación correcta, mientras que los elementos no diagonales son un error, ya sea falso positivo o falso negativo. Por lo tanto, el error medio de clasificación puede obtenerse mediante (1 - proporción de clasificación correcta) - 1 - (sum(diag(cm))/sum(cm))
library(rpart)
set.seed(1237)
df <- data.frame(y = sample(c("H","L"), 100, replace = T),
x = rnorm(100))
fit <- rpart(y ~ x, data = df)
# fitted values
fit.val <- predict(fit, type = "class")
# proportion that classified as H or L
length(fit.val[fit.val=="H"])/length(df$y)
# [1] 0.51
length(fit.val[fit.val=="L"])/length(df$y)
# [1] 0.49
# confusion table
cm <- table(actual = df$y, fitted = fit.val)
cm
# fitted
# actual H L
# H 36 11
# L 15 38
# mean misclassification error
mmce <- 1 - (sum(diag(cm))/sum(cm))
mmce
# [1] 0.26