[R-es] Porcentajes de clasificaciones correctas

Proyecto R-UCA r-uc@ @end|ng |rom uc@@e@
Vie Mar 4 12:21:59 CET 2022


Buenas,

Creo que la cuestión puede estar aquí
data$preds <- as.factor(preds)

Supongamos que las clasificaciones correctas están en data$clas, prueba
a hacer
data$preds <- as.factor(preds, levels = levels(data$clas))

Esto te garantiza que ambos factores tengan los mismos niveles y en el
mismo orden y creo que eso es lo que necesitas.

Un saludo.

El sáb, 26-02-2022 a las 20:39 +0100, Manuel Mendoza escribió:
> 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]]
> 
> _______________________________________________
> R-help-es mailing list
> R-help-es using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es



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