Estoy tratando de descubrir cómo calcular el índice Rand de un algoritmo de clúster, pero no sé cómo calcular los negativos verdaderos y falsos.
En este momento estoy usando el ejemplo del libro Introducción a la recuperación de información (Manning, Raghavan y Schütze, 2009). En la página 359 hablan sobre cómo calcular el índice Rand. Para este ejemplo, usan tres grupos y los grupos contienen los siguientes objetos.
- aaaaab
- abbbbc
- aaccc
Reemplazo el objeto (signos originales a letras, pero la idea y el recuento permanecen igual). Daré las palabras exactas del libro para ver de qué están hablando:
Primero calculamos TP + FP. Los tres grupos contienen 6, 6 y 5 puntos, respectivamente, por lo que el número total de "positivos" o pares de documentos que están en el mismo grupo es:
TP + FP = + ( 6 + ( 5 = 15 + 15+ 10 = 40
De estos, los pares a en el grupo 1, los pares b en el grupo 2, los pares c en el grupo 3 y los pares a en el grupo 3 son verdaderos positivos:
TP = + ( 4 + ( 3 + ( 2 = 10 + 6 + 3 + 1 = 20
Por lo tanto, FP = 40-20 = 20.
Hasta aquí, los cálculos son claros, y si tomo otros ejemplos obtengo los mismos resultados, pero cuando quiero calcular el falso negativo y el verdadero negativo, Manning et al. declare lo siguiente:
FN y TN se calculan de manera similar, dando como resultado la siguiente tabla de contingencia:
La tabla de contingencia tiene el siguiente aspecto:
+--------+--------+
| TP: 20 | FN: 24 |
+--------+--------+
| FP: 20 | TN: 72 |
+--------+--------+
La frase: "FN y TN se calculan de manera similar" no está clara para mi y no entiendo qué números necesito para calcular el TN y FN. Puedo calcular el lado derecho de la tabla haciendo lo siguiente:
TP + FP + FN + TN = = ( 17 = 136
Fuente: http://en.wikipedia.org/wiki/Rand_index
Por lo tanto, FN + TN = 136 - TP + FP = 136 - 40 = 96, pero esto realmente no me ayuda a descubrir cómo calcular las variables por separado. Especialmente cuando los autores dicen: "FN y TN se calculan de manera similar". No veo como Además, cuando miro otros ejemplos, calculan cada celda de la tabla de contingencia mirando cada par.
Por ejemplo: http://www.otlet-institute.org/wikics/Clustering_Problems.html#toc-Subsection-4.1
Mi primera pregunta, basada en el ejemplo de Manning et al (2009), ¿es posible calcular el TN y el FN si solo conoce el TP y el NP? Y si es así, ¿cómo se ve un cálculo similar basado en el ejemplo dado?
fuente
Después de haber estudiado las otras respuestas en este hilo, aquí está mi implementación de Python, que toma matrices como entradas,
sklearn
-style:fuente
No estoy muy seguro de mí mismo, pero así es como hice el valor
TN : TN = (7 2) (10 2) (4 2)
(7 2) - Grupo 1 - la prueba dice 'x', así que cuente los que NO son x (y están agrupados correctamente en los grupos 2 y 3)
es decir, 4 'o's + 3' d's (diamantes) = (7 2)
(10 2) - Grupo 2, cuente los que NO son 'o' y están agrupados correctamente en los grupos 1 y 3,
es decir, 5 'x' + (2'x '+ 3'd') = (10 2)
(4 2) - Grupo 3, cuente los que NO son 'x' y NO 'd' (elemento en forma de diamante) que están agrupados correctamente en los grupos 1 y 2.
es decir, 4 'o en el grupo 2. = (4 2)
TN = (7 2) + (10 2) + (4 2) = 72.
Entonces FN es:
FN = (17 2) - (TP + FP) - TN = 136 - 40-72 = 24. ---> (17 = número total de documentos)
fuente
Tomando el ejemplo de otra pregunta:
La respuesta razonable para FN:
Explicación:
(c (8,2) -c (5,2) -c (2,2))
elija 2 de 8 para 'x' (a) la combinación de la misma clase en los mismos grupos (c (5,2) para el grupo 1 yc (2,2) para el grupo 3),
(c (5,2) -c (4,2))
elija 2 de 5 'o' (b) menos la combinación de la misma clase en los mismos grupos (c (4,2) para el grupo 2)
(c (4,2) -c (3,2)
elija 2 de 4 para '◇' (c) menos la combinación de la misma clase en los mismos grupos (c (3,2) para el grupo 3)
Lo deduje así.
fuente
Tengo una implementación de esto en R que explicaré:
TP (a en el código) es la suma de cada celda elige 2. Según la pregunta original (0 o 1 elige 2 que equivale a 0)
FN (b) es la suma de cada fila, elija 2, todo sumado, menos TP. Donde cada suma de filas representa el número de documentos en cada clase True.
La suma de esto es todos los documentos que son similares y están en el mismo grupo (TP) más todos los documentos que son similares y no están en el mismo grupo (FN).
Entonces esto es (TP + FN) - TP = FN
FP (c) se calcula de manera similar. La suma de cada columna elige 2, todos sumados, menos TP. En este caso, la suma de cada columna representa el número de documentos en cada grupo.
Entonces, la suma de esto es todos los documentos que son similares y están en el mismo grupo (TP) más todos los documentos que no son similares y están en el mismo grupo (FP).
Entonces esto es (TP + FP) - TP = FP
Con estos 3 calculados, el cálculo restante de TN es sencillo. La suma de la tabla elige 2, menos TP, FP y FN = TN (d)
La única consulta que tengo con este método es su definición de TP. Usando la terminología en esta pregunta, no entiendo por qué las 2 a en el grupo 3 se consideran TP. He encontrado esto aquí y en el libro de texto relacionado. Sin embargo, entiendo su cálculo con la suposición de que su cálculo de TP es correcto.
Espero que esto ayude
fuente
Puede calcular TN y FN de la misma manera.
Simplemente cambie los roles de etiquetas y clústeres .
... luego realiza los mismos cálculos.
fuente
Creo que hice ingeniería inversa del falso negativo (FN). Para los verdaderos positivos, hiciste 4 grupos que fueron positivos. En el grupo 1, tenías las cinco a; en el grupo 2, tenías las 4 b's; en el grupo 3 tenías las 3 c y las 2 a.
Entonces para el falso negativo.
Por lo tanto, tiene (5 1) + (5 2) + (4 1) + (3 1) + (2 1) que equivale a 5 + 10 + 4 + 3 + 2 = 24. De ahí viene el 24, entonces solo resta eso de los 136 que ya encontraste para obtener el verdadero neg (TN).
fuente
Aquí se explica cómo calcular cada métrica para el índice Rand sin restar
Notas al margen para facilitar la comprensión:
1) Rand Index se basa en comparar pares de elementos. La teoría sugiere que pares de elementos similares deben colocarse en el mismo grupo, mientras que pares de elementos diferentes deben colocarse en grupos separados.
2) RI no se preocupa por la diferencia en el número de grupos. Simplemente se preocupa por los pares de elementos Verdadero / Falso.
Sobre la base de este supuesto, se calcula el índice Rand
Ok, vamos a sumergirnos aquí es nuestro ejemplo:
En denominador, tenemos un total de pares posibles, que es
(17 2) = 136
Ahora calculemos cada métrica para una mejor comprensión:
A) Comencemos con fácil a , ( Positivos verdaderos o correctos similares )
Significa que necesita encontrar todos los pares de elementos posibles, donde la predicción y la etiqueta verdadera se colocaron juntas. En el ejemplo de cuadrícula significa obtener la suma de los posibles pares dentro de cada celda.
C) Ahora, hagamos c ( Positivos falsos o incorrectos diferentes )
Significa, encontrar todos los pares, que colocamos juntos, pero que deberían estar en diferentes grupos. En el ejemplo de cuadrícula, significa, encontrar todos los pares posibles entre 2 celdas horizontales
D) Calcular d ( falso negativo o incorrecto similar ) Significa, encontrar todos los pares que colocamos en diferentes grupos, pero que deberían estar juntos. En el ejemplo de cuadrícula, encuentre todos los pares posibles entre 2 celdas verticales
B) Y, finalmente, hagamos b ( Verdaderos negativos o correctos diferentes )
Significa, encontrar todos los pares que colocamos en diferentes grupos, que también deberían estar en diferentes grupos. En la cuadrícula, significa encontrar todos los pares posibles entre 2 celdas no verticales y no horizontales
A continuación, se detallan los números que se deben multiplicar para comprender mejor lo que quise decir:
En números:
Y al final Rand Index es igual:
(20 + 72) / 136 = 0.676
fuente
A continuación se muestra la imagen que describe su pregunta:
Para resolver este problema, debe considerar esta matriz:
Así es como calculamos TP, FN, FP para el índice Rand:
NOTA: En las ecuaciones anteriores, usé un triángulo para mostrar el diamante en la imagen.
Por ejemplo, para Falso negativo, deberíamos elegir de la clase pero en diferentes grupos. Entonces, podemos elegir
Finalmente tendremos24 (= 5 + 10 + 4 + 2 + 3 ) estados.
Lo mismo es para el resto de las ecuaciones.
La parte más difícil es TN, que se puede hacer como la imagen de abajo:
Hay algunas rutas más cortas para calcular el índice Rand, pero es el cálculo en profundidad y paso a paso. Finalmente, la tabla de contingencia tiene el siguiente aspecto:
fuente