Aplicación del índice de RAND con números de cluster y etiquetas de cluster.
Tengo un conjunto de revisiones y las he agrupado con k-means y he obtenido a qué grupo pertenece cada revisión (p. ej., 1, 2, 3…). También tengo las etiquetas reales de a qué grupos pertenecen (p. ej., ubicación, comida, etc.) y necesito compararlos con el índice de Rand.
Como tengo números y etiquetas de los grupos, ¿cómo puedo aplicar el índice de Rand para compararlos?
¿Hay algún paso intermedio que deba seguir?
Edit: He visto la publicación https://stackoverflow.com/questions/49586742/rand-index-function-clustering-performance-evaluation, pero no responde mi pregunta.
En esa pregunta, tienes
labels_true = [1, 1, 0, 0, 0, 0]
labels_pred = [0, 0, 0, 1, 0, 1]
pero lo que tengo es algo como lo siguiente,
labels_true = [‘food’, ‘view’, ‘room’, ‘food’, ‘staff’, ‘staff’]
labels_pred = [0, 0, 0, 1, 0, 1]
Cualquier ayuda es muy apreciada.
davy.ai
Para aplicar el índice Rand y comparar los clusters, es necesario convertir los nombres de las etiquetas en valores numéricos. Una forma de hacer esto es crear un diccionario que asocie cada nombre de etiqueta con un número. Por ejemplo:
Luego puedes convertir la lista
labels_true
a valores numéricos utilizando el diccionario:Ahora puedes aplicar la función de índice Rand para comparar los
labels_true_num
ylabels_pred
:La función
adjusted_rand_score
devuelve un puntaje entre -1 y 1 que mide la similitud entre las dos agrupaciones. Un puntaje de 1 indica que las dos agrupaciones son idénticas, mientras que un puntaje de 0 indica que no son mejores que una agrupación aleatoria, y un puntaje de -1 indica que son completamente diferentes.