Recientemente publiqué un conjunto de datos ( enlace ) con 369 clases. Realicé un par de experimentos con ellos para tener una idea de lo difícil que es la tarea de clasificación. Por lo general, me gusta si hay matrices de confusión para ver el tipo de error que se está cometiendo. Sin embargo, una matriz no es práctica.
¿Hay alguna manera de dar la información importante de las matrices de gran confusión? Por ejemplo, generalmente hay muchos ceros que no son tan interesantes. ¿Es posible ordenar las clases de manera que la mayoría de las entradas distintas de cero estén alrededor de la diagonal para permitir mostrar múltiples matrices que forman parte de la matriz de confusión completa?
Aquí hay un ejemplo para una gran matriz de confusión .
Ejemplos en la naturaleza
La figura 6 de EMNIST se ve bien:
Es fácil ver dónde están muchos casos. Sin embargo, esas son solo clases. Si se usara toda la página en lugar de solo una columna, esto probablemente podría ser 3 veces más, pero todavía sería solo clases. Ni siquiera cerca de 369 clases de HASY o 1000 de ImageNet.
Ver también
Mi pregunta similar sobre CS.stackexchange
fuente
Respuestas:
Puede aplicar una técnica que describí en mi tesis de maestría (página 48ff) y llamada Confusion Matrix Ordering (CMO):
Buen efecto secundario: este método también agrupa automáticamente clases similares. La figura 5.12 de mi tesis de maestría muestra que:
Puede aplicar la matriz de confusión ordenando con
clana
fuente
En lugar de tratar de reordenar las columnas y las filas, sugeriría intentar encontrar alguna otra forma de visualizar los datos.
Aquí hay una posible sugerencia alternativa. Podría agrupar las clases, por ejemplo, en ~ 20 grupos, donde cada grupo tiene ~ 20 clases, utilizando algún tipo de algoritmo de agrupación que reúne clases similares en el mismo grupo (por ejemplo, si dos clases se confunden con frecuencia entre sí, deberían ser más propensos a estar en el mismo grupo). Luego puede mostrar una matriz de confusión de grano grueso, con una fila / columna por grupo; la celda en( i , j ) yo j . Además, puede tener ~ 20 matrices de confusión de grano fino: para cada grupo, puede mostrar la matriz de confusión de clases, para las ~ 20 clases en cada grupo. Por supuesto, también podría ampliar esto mediante el uso de agrupamiento jerárquico y tener matrices de confusión en granularidades múltiples.
Puede haber otras posibles estrategias de visualización también.
Como un punto filosófico general: también podría ayudar a aclarar sus objetivos (lo que desea obtener de la visualización). Puede distinguir dos tipos de usos de visualización:
Análisis exploratorio: no estás seguro de lo que estás buscando; solo desea una visualización que pueda ayudarlo a buscar patrones o artefactos interesantes en los datos.
Figuras con un mensaje: tiene un mensaje en particular que desea que le quite el lector y desea diseñar una visualización que ayude a respaldar ese mensaje o proporcionar evidencia del mensaje.
Podría ayudarlo a saber a qué está tratando de apuntar y luego diseñar una visualización dirigida a eso:
Si está haciendo un análisis exploratorio, en lugar de tratar de elegir una visualización perfecta, a menudo es útil intentar crear tantas visualizaciones como pueda imaginar. No te preocupes si alguno de ellos es perfecto; está bien si cada uno es defectuoso, ya que cada uno puede darle una perspectiva potencialmente diferente de los datos (probablemente será bueno en algunos aspectos y malo en otros).
Si tiene un mensaje en particular que está tratando de transmitir o un tema que está tratando de desarrollar, busque una visualización que admita ese tema. Es difícil hacer una sugerencia específica sin saber cuál podría ser ese tema / mensaje.
fuente
Es importante saber por qué la matriz de confusión EMNIST se ve bien.
Pero me parece extraño que no hayan mantenido el color con los números más altos siendo los más oscuros, por ejemplo, la mayoría de las clasificaciones de errores vacías que contienen ceros son de un gris más oscuro que las que contienen un número entero. No parece consistente.
Intentaría usar el estilo EMINST, excepto mantenerlo consistente donde el color indica el número de entradas en una celda. Blanco para cero entradas y negro para la mayoría de las entradas.
Una clasificación perfecta sería una diagonal negra con triángulos superiores e inferiores completamente blancos. Donde hubiera parches grises en los triángulos indicaría problemas. Incluso en un conjunto de 1000 clases esto sería útil. Para ImageNet, donde las clases son jerárquicas, quizás ordenar las columnas de modo que las subclases se agrupen a la derecha de la clase principal conduciría a parches oscuros al cuadrado.
Además, si obtiene las 5 respuestas principales para una imagen, las clases pueden no ser mutuamente excluyentes, de modo que la clasificación del perro para una imagen de un lap_dog debería ser verdadera, por lo tanto, en una matriz de confusión, las clases más generales deberían ser mucho más oscuras que las clasificaciones precisas (si los colores están normalizados). Por lo tanto, el cuadrado superior izquierdo sería el más oscuro.
fuente