[R-es] Porcentajes de clasificaciones correctas

Manuel Mendoza mmendoz@ @end|ng |rom |u|br|ghtm@||@org
Sab Feb 26 20:39:22 CET 2022


Hola de nuevo. Me ha costado pero ahora entiendo la confusión. Cuando hago
una tabla enfrentando lo observado con lo predicho por un análisis (rpart
en este caso) la clasificación mantiene las categorías originales, por lo
que la tabla es cuadrada y la diagonal de prop.table(variable objetivo,
predicción) recoge los porcentajes de clasificaciones correctas.

El problema surge cuando las predicciones vienen de un loop (un leave one
out en este caso) en el que se almacenan las predicciones. Las categorías
sin predicciones no son contempladas, y al hacer la tabla, ya no es
cuadrada.

Os lo copio por si alguien sabe cómo hacer que incluya las categorías sin
casos predichos.

preds <- c(0)  # creamos un vector vacío
for (i in 1:nrow(data)) {
  training <- data[-i, ]
  fitrp <- rpart(FAMILY ~ .,data=training, cp=cpopt)
  Pred <- predict(fitrp,data[i,], type="class")
  preds[i] <- as.character(Pred)
 }
data$preds<- as.factor(preds)
tabrp<-table(data$FAMILY,data$preds); tabrp # Tabla de contingencia en
valores absolutos
tabprc<-round(100*(prop.table(tabrp,1)),0); tabprc # Tabla de contingencia
en porcentajes

Gracias,
Manuel


> El sáb, 26 feb 2022 a las 1:19, Manuel Mendoza (<
> mmendoza using fulbrightmail.org>) escribió:
>
>> Buenos días, obtengo una Tabla de contingencia con:
>> tabrp<-table(variable objetivo, predicción)
>>
>> y en porcentajes con:
>> tabprc<-100*(prop.table(tabrp,1))
>>
>> Para sacar los porcentajes de clasificaciones correctas usaba simplemente:
>> diag(tabrp)
>>
>> pero si no todas las categorías de la variable objetivo están en la
>> predicción, la diagonal ya no son las clasificaciones correctas.
>>
>> ¿Sabéis de alguna forma sencilla de obtener esas clasificaciones correctas
>> o de algún paquete que te lo dé directamente?
>> Gracias,
>> Manuel
>>
>

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es