Estou tentando descobrir como calcular o índice Rand de um algoritmo de cluster, mas estou parado no momento em como calcular os negativos verdadeiros e verdadeiros.
No momento, estou usando o exemplo do livro Uma Introdução à Recuperação de Informações (Manning, Raghavan & Schütze, 2009). Na página 359, eles falam sobre como calcular o índice Rand. Neste exemplo, eles usam três clusters e os clusters contêm os seguintes objetos.
- aaaaab
- abbbbc
- aaccc
Substituo o objeto (sinais originais em letras, mas a idéia e a contagem permanecem as mesmas). Darei as palavras exatas do livro para ver do que elas estão falando:
Primeiro calculamos TP + FP. Os três clusters contêm 6, 6 e 5 pontos, respectivamente, portanto, o número total de "positivos" ou pares de documentos que estão no mesmo cluster é:
TP + FP = + + = 15 + 15+ 10 = 40
Desses, os pares a no cluster 1, pares b no cluster 2, pares c no cluster 3 e pares a no cluster 3 são verdadeiros positivos:
TP = + + + = 10 + 6 + 3 + 1 = 20
Assim, FP = 40 - 20 = 20.
Até aqui, os cálculos são claros e, se eu der outros exemplos, obtenho os mesmos resultados, mas quando quero calcular o falso negativo e o negativo negativo Manning et al. indique o seguinte:
FN e TN são calculados de maneira semelhante, resultando na seguinte tabela de contingência:
A tabela de contingência tem a seguinte aparência:
+--------+--------+
| TP: 20 | FN: 24 |
+--------+--------+
| FP: 20 | TN: 72 |
+--------+--------+
A frase: "FN e TN são calculados da mesma forma" não é clara para mim e não entendo quais números eu preciso calcular para TN e FN. Eu posso calcular o lado direito da tabela fazendo o seguinte:
TP + FP + FN + TN = = = 136
Fonte: http://en.wikipedia.org/wiki/Rand_index
Assim, FN + TN = 136 - TP + FP = 136 - 40 = 96, mas isso realmente não ajuda a descobrir como calcular as variáveis separadamente. Especialmente quando os autores dizem: "FN e TN são computados de maneira semelhante". Eu não vejo como. Além disso, quando observo outros exemplos, eles calculam cada célula da tabela de contingência observando cada par.
Por exemplo: http://www.otlet-institute.org/wikics/Clustering_Problems.html#toc-Subsection-4.1
Minha primeira pergunta, baseada no exemplo de Manning et al (2009), é possível calcular o TN e o FN se você conhece apenas o TP & NP? E se sim, como é o cálculo semelhante com base no exemplo fornecido?
fonte
Depois de ter estudado as outras respostas neste segmento, aqui está minha implementação do Python, que recebe matrizes como entradas,
sklearn
-style:fonte
Não tenho muita certeza, mas foi assim que fiz o valor de
TN : TN = (7 2) (10 2) (4 2)
(7 2) - Cluster 1 - o teste diz 'x', então conte aqueles que NÃO são x (e estão corretamente agrupados nos clusters 2 e 3)
ou seja, 4 'o + 3' d's (diamantes) = (7 2)
(10 2) - Cluster 2, conte aqueles que NÃO são do tipo 'e está corretamente agrupado nos clusters 1 e 3,
ou seja, 5 'x' + (2'x '+ 3'd') = (10 2)
(4 2) - Cluster 3, conte os que NÃO são 'x' e NOT 'd' (elemento em forma de diamante) s que estão corretamente agrupados nos clusters 1 e 2.
ou seja, 4 'o no cluster 2. = (4 2)
TN = (7 2) + (10 2) + (4 2) = 72.
Então FN é:
FN = (17 2) - (TP + FP) - TN = 136 - 40 -72 = 24. ---> (17 = número total de documentos)
fonte
Tomando o exemplo de outra pergunta:
A resposta razoável para a FN:
Explicação:
(c (8,2) -c (5,2) -c (2,2))
escolha 2 de 8 para 'x' (a) a combinação da mesma classe nos mesmos clusters (c (5,2) para o cluster 1 ec (2,2) para o cluster 3),
(c (5,2) -c (4,2))
escolha 2 de 5 'o' (b) menos a combinação da mesma classe nos mesmos clusters (c (4,2) para o cluster 2)
(c (4,2) -c (3,2)
escolha 2 de 4 para '◇' (c) menos a combinação da mesma classe nos mesmos clusters (c (3,2) para o cluster 3)
Eu deduzi assim.
fonte
Eu tenho uma implementação disso em R, que explicarei:
TP (a no código) é a soma de cada célula, escolha 2. Conforme a pergunta original (0 ou 1, escolha 2 igual a 0)
FN (b) é a soma de cada linha, escolha 2, todas somadas, menos TP. Onde cada soma de linha representa o número de documentos em cada classe True.
A soma disso é todos os documentos semelhantes e no mesmo cluster (TP) mais todos os documentos semelhantes e que não estão no mesmo cluster (FN).
Então este é (TP + FN) - TP = FN
FP (c) é calculado da mesma forma. A soma de cada coluna escolhe 2, todos somados, menos TP. Nesse caso, a soma de cada coluna representa o número de documentos em cada cluster.
Portanto, a soma disso é todos os documentos que são semelhantes e no mesmo cluster (TP) mais todos os documentos que não são semelhantes e estão no mesmo cluster (FP).
Então este é (TP + FP) - TP = FP
Com estes 3 calculados, o cálculo restante da TN é direto. A soma da tabela escolhe 2, menos TP, FP e FN = TN (d)
A única consulta que tenho com esse método é a definição de TP. Usando a terminologia nesta pergunta, não entendo por que os 2 a no cluster 3 são considerados TP. Eu encontrei isso aqui e no livro relacionado. No entanto, eu entendo o cálculo com a suposição de que o cálculo do TP está correto.
Espero que isto ajude
fonte
Você pode calcular TN e FN da mesma maneira.
Apenas mude os papéis de rótulos e clusters .
... então execute os mesmos cálculos.
fonte
Eu acho que fiz engenharia reversa do falso negativo (FN). Para os verdadeiros positivos, você criou 4 grupos positivos. No cluster 1, você tinha os cinco a's; no cluster 2, você tinha os 4 b's; no cluster 3, você tinha os 3 c E os 2 a.
Assim, para o falso negativo.
Portanto, você tem (5 1) + (5 2) + (4 1) + (3 1) + (2 1) o que equivale a 5 + 10 + 4 + 3 + 2 = 24. É daí que vêm os 24, então subtraia isso dos 136 que você já encontrou para obter o verdadeiro neg (TN).
fonte
Aqui está como calcular todas as métricas do Rand Index sem subtrair
Notas laterais para facilitar a compreensão:
1) Rand Index é baseado na comparação de pares de elementos. A teoria sugere que pares de elementos semelhantes devem ser colocados no mesmo cluster, enquanto pares de elementos diferentes devem ser colocados em grupos separados.
2) O RI não se importa com a diferença no número de clusters. Ele se importa apenas com pares de elementos Verdadeiro / Falso.
Com base nessa premissa, o Rand Index é calculado
Ok, vamos mergulhar aqui é o nosso exemplo:
No denominador, temos o total de pares possíveis, que é
(17 2) = 136
Agora vamos calcular todas as métricas para melhor entendimento:
A) Vamos começar com fácil um , ( verdadeiros positivos ou correta semelhante )
Isso significa que você precisa encontrar todos os pares possíveis de elementos, onde previsão e rótulo verdadeiro foram colocados juntos. No exemplo de grade, significa obter a soma dos pares possíveis dentro de cada célula.
C) Agora, vamos fazer c ( falsos positivos ou diferentes incorretos )
Significa encontrar todos os pares que colocamos juntos, mas que devem estar em grupos diferentes. No exemplo da grade, significa encontrar todos os pares possíveis entre duas células horizontais
D) Calculando d ( falso negativo ou similar incorreto ) Significa encontrar todos os pares que colocamos em grupos diferentes, mas que devem estar juntos. No exemplo de grade, encontre todos os pares possíveis entre duas células verticais
B) E, finalmente, vamos fazer b ( Verdadeiros Negativos ou corrigir diferentes )
Significa encontrar todos os pares que colocamos em diferentes grupos, que também devem estar em diferentes grupos. Na grade, significa encontrar todos os pares possíveis entre duas células não verticais e não horizontais
Aqui estão quais números devem ser multiplicados, para entender melhor o que eu quis dizer:
Em números:
E no final o Rand Index é igual:
(20 + 72) / 136 = 0.676
fonte
Abaixo está a imagem que descreve sua pergunta:
Para resolver esse problema, você precisa considerar esta matriz:
É assim que calculamos TP, FN, FP para o Rand Index:
NOTA: Nas equações acima, usei um triângulo para mostrar o diamante na figura.
Por exemplo, para Falso Negativo, devemos escolher da classe, mas em grupos diferentes. Então, podemos escolher
O mesmo é para o resto das equações.
A parte mais difícil é a TN, que pode ser feita como na figura abaixo:
Existem alguns caminhos mais curtos para calcular o índice Rand, mas é o cálculo em profundidade e passo a passo. Por fim, a tabela de contingência tem a seguinte aparência:
fonte