Este es un reto divertido. Esta es mi sugerencia. Construye un puntuación global de precisión ponderada de manera que no sólo incorpore si un clasificador tuvo éxito o no en la predicción de la clase correcta (como en su cálculo), sino también por cuánto tuvo éxito o fracasó. En otras palabras, el cálculo debe incluir también la probabilidad estimada, además de una medida binaria (éxito/fracaso).
Para demostrarlo, utilizaré un ejemplo de 10 usuarios, cinco clases originales, y haremos tres predicciones: para la primera, la segunda y la tercera clase. A continuación se muestra un ejemplo de las clases originales (C1 a C5) y las probabilidades estimadas (p1 a p5) para un clasificador dado.
El siguiente paso es averiguar las tres probabilidades más altas estimadas (de max_p1 a max_p3), y la verdadera pertenencia a la clase asociada a cada predicción (de C_pred1 a C_pred3):
Por ejemplo, la mayor probabilidad estimada para el usuario nº 1 es 0,26, que corresponde a C1. Y el usuario nº 1 hace no pertenecen a esa clase (porque C1 = 0), se obtiene un indicador de "fallido" de 0 (en lugar de 1 para el éxito) en la columna C_pred1. Del mismo modo, la segunda mejor probabilidad estimada (0,25) pertenece a C4, y como el usuario nº 1 pertenece a C4, obtenemos C_pred2 = 1. Ahora, puede multiplicar 'max_p1' por 'C_pred1', y obtener un conjunto de tres puntuaciones para cada usuario:
Tenga en cuenta que estas puntuaciones incorporan dos cosas: (1) si la primera/segunda/tercera mejor predicción fue correcta o no, y (2) la respectiva probabilidad estimada para la predicción correcta. De este modo, un clasificador que asigne altas probabilidades a las clases correctas tenderá a obtener una mayor puntuación. La suma de esas tres puntuaciones dará la puntuación global de cada usuario, que luego puede sumarse a la de todos los usuarios para obtener el puntuación global de precisión ponderada para un clasificador determinado.
Tenga en cuenta que, en lugar de tomar una suma directa de las tres puntuaciones de cada usuario, puede asignar ponderaciones de forma que la primera predicción obtenga la mayor ponderación y la tercera, la menor. Esto puede basarse en una regla general, dependiendo de la importancia de su predicción principal/segunda frente a las demás.
También puede añadir algunos matices más: antes de tomar la suma de las puntuaciones de los tripletes de cada usuario, divida cada una de las tres puntuaciones por el tamaño del segmento correspondiente. Esto añadirá un ajuste para las clases desequilibradas. En otras palabras, un clasificador tendrá que rendir más que la probabilidad de referencia (es decir, el tamaño original de la clase) para obtener una mejor puntuación.
En resumen, la idea general es la siguiente: Hacer tres predicciones (pertenencia a una clase) basadas en las tres principales probabilidades estimadas para cada usuario. A continuación, tome la suma de esas tres probabilidades, pero considere sólo las probabilidades en las que las predicciones de clase fueron correctas. Por último, la puntuación global de precisión ponderada es la suma de esas puntuaciones a nivel de usuario en toda la muestra. Esta suma puede dividirse por el tamaño de la muestra para restringir su valor entre cero y uno. Elija el clasificador que tenga la mayor puntuación de precisión ponderada global (preferiblemente en un conjunto de validación separado).