[R-es] Porcentajes de clasificaciones correctas

Javier Marcuzzi j@v|er@ruben@m@rcuzz| @end|ng |rom gm@||@com
Dom Feb 27 00:07:59 CET 2022


Estimado Manual Mendoza

Sin entrar en su caso en particular, puesto que tendría que estudiarlo para
poder opinar, le comparto un razonamiento según mi experiencia que podría
ser útil.

Primero, supongamos A, B, C, que serían las categorías. Luego 100, 150, 200
que serían los observados. Pero entre las categorías y los observados está
alpha y betta.
Segundo, supongamos que en b no hay betta, pero puede realizar la
predicción, por lo que dice que B alpha es 150, y B betta 153.
Tercero, en las predicciones al realizar el bucle, toma A y B, no solicita
ninguna combinación de C.
Cuarto, el problema al continuar está que el punto tercero, donde una
categoría (C) no es tenida en cuenta.

En mi experiencia, yo realicé algo donde podría tener tantas predicciones,
que lo engorroso fué hacer entender la posibilidad, pero que no se podía
calcular ni graficar, entraba en algo donde era inmanejable cómo medir
todas las estrellas en caso de poder contarlas. En las predicciones con
bucles tiene el problema de colocar demasiado o perder una posibilidad por
error humano, posiblemente ahí usted tenga un problema, en algún lugar está
perdiendo una categoría.

Javier Rubén Marcuzzi


El sáb, 26 feb 2022 a las 16:40, Manuel Mendoza (<mmendoza using fulbrightmail.org>)
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
>

	[[alternative HTML version deleted]]



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