J'essaie de comprendre comment calculer l'indice Rand d'un algorithme de cluster, mais je suis coincé au point de savoir comment calculer les vrais et les faux négatifs.
Pour le moment, j'utilise l'exemple du livre An Introduction into Information Retrieval (Manning, Raghavan & Schütze, 2009). À la page 359, ils expliquent comment calculer l'indice Rand. Pour cet exemple, ils utilisent trois clusters et les clusters contiennent les objets suivants.
- aaaaab
- abbbbc
- aaccc
Je remplace l'objet (signes originaux en lettres, mais l'idée et le décompte restent les mêmes). Je vais donner les mots exacts du livre afin de voir de quoi ils parlent:
Nous calculons d'abord TP + FP. Les trois groupes contiennent respectivement 6, 6 et 5 points, de sorte que le nombre total de «positifs» ou de paires de documents qui se trouvent dans le même groupe est:
TP + FP = + + = 15 + 15+ 10 = 40
Parmi ceux-ci, les paires a du cluster 1, les paires b du cluster 2, les paires c du cluster 3 et la paire a du cluster 3 sont de vrais positifs:
TP = + + + = 10 + 6 + 3 + 1 = 20
Ainsi, FP = 40-20 = 20.
Jusqu'ici, les calculs sont clairs, et si je prends d'autres exemples, j'obtiens les mêmes résultats, mais quand je veux calculer le faux négatif et le vrai négatif Manning et al. énoncer ce qui suit:
FN et TN sont calculés de manière similaire, ce qui donne le tableau de contingence suivant:
Le tableau de contingence se présente comme suit:
+--------+--------+
| TP: 20 | FN: 24 |
+--------+--------+
| FP: 20 | TN: 72 |
+--------+--------+
La phrase: "FN et TN sont calculés de la même manière" n'est pas claire pour moi et je ne comprends pas de quels nombres j'ai besoin pour calculer le TN et le FN. Je peux calculer le côté droit du tableau en procédant comme suit:
TP + FP + FN + TN = = = 136
Source: http://en.wikipedia.org/wiki/Rand_index
Ainsi, FN + TN = 136 - TP + FP = 136 - 40 = 96, mais cela ne m'aide pas vraiment à comprendre comment calculer les variables séparément. Surtout quand les auteurs disent: "FN et TN sont calculés de manière similaire". Je ne vois pas comment. Aussi quand je regarde d'autres exemples, ils calculent chaque cellule du tableau de contingence en regardant chaque paire.
Par exemple: http://www.otlet-institute.org/wikics/Clustering_Problems.html#toc-Subsection-4.1
Ma première question, basée sur l'exemple de Manning et al (2009), est-il possible de calculer le TN et le FN si vous ne connaissez que le TP & NP? Et si oui, à quoi ressemble un calcul similaire basé sur l'exemple donné?
la source
Après avoir étudié les autres réponses de ce fil, voici mon implémentation Python, qui prend les tableaux en entrée,
sklearn
-style:la source
Je ne suis pas tout à fait sûr moi-même, mais voici comment j'ai fait la valeur
TN : TN = (7 2) (10 2) (4 2)
(7 2) - Cluster 1 - le test dit 'x', donc comptez ceux qui ne sont PAS x (et sont correctement clusterisés dans les clusters 2 & 3)
soit 4 'o + 3' d'(diamants) = (7 2)
(10 2) - Cluster 2, comptez ceux qui ne sont PAS des 'o' et correctement groupés dans les clusters 1 et 3,
soit 5 'x' + (2'x '+ 3'd') = (10 2)
(4 2) - Cluster 3, comptez ceux qui ne sont PAS 'x' et PAS 'd' (élément en forme de losange) qui sont correctement groupés dans les clusters 1 & 2.
soit 4 'o dans le cluster 2. = (4 2)
TN = (7 2) + (10 2) + (4 2) = 72.
Alors FN c'est:
FN = (17 2) - (TP + FP) - TN = 136 - 40 -72 = 24. ---> (17 = nombre total de documents)
la source
Prenons l'exemple d'une autre question:
La réponse raisonnable pour FN:
Explication:
(c (8,2) -c (5,2) -c (2,2))
choisir 2 parmi 8 pour 'x' (a) la combinaison de la même classe dans les mêmes grappes (c (5,2) pour la grappe 1 et c (2,2) pour la grappe 3),
(c (5,2) -c (4,2))
choisir 2 parmi 5 'o' (b) moins la combinaison de la même classe dans les mêmes grappes (c (4,2) pour la grappe 2)
(c (4,2) -c (3,2)
choisissez 2 parmi 4 pour '◇' (c) moins la combinaison de la même classe dans les mêmes grappes (c (3,2) pour la grappe 3)
Je l'ai dérivé comme ça.
la source
J'ai une implémentation de ceci dans R que je vais expliquer:
TP (a dans le code) est la somme de chaque cellule, choisissez 2. Selon la question d'origine (0 ou 1, choisissez 2 équivalant à 0)
FN (b) est la somme de chaque ligne, choisissez 2, toutes additionnées, moins TP. Où chaque somme de ligne représente le nombre de documents dans chaque classe True.
La somme de ceci est tous les documents qui sont similaires et dans le même cluster (TP) plus tous les documents qui sont similaires et ne sont pas dans le même cluster (FN).
C'est donc (TP + FN) - TP = FN
FP (c) est calculé de manière similaire. La somme de chaque colonne en choisit 2, toutes additionnées, moins TP. Dans ce cas, chaque somme de colonne représente le nombre de documents dans chaque cluster.
Ainsi, la somme de tous les documents qui sont similaires et dans le même cluster (TP) ainsi que tous les documents qui ne sont pas similaires et sont dans le même cluster (FP).
C'est donc (TP + FP) - TP = FP
Avec ces 3 calculés, le calcul restant de TN est simple. La somme du tableau choisit 2, moins TP, FP & FN = TN (d)
La seule requête que j'ai avec cette méthode est sa définition de TP. En utilisant la terminologie de cette question, je ne comprends pas pourquoi les 2 a du cluster 3 sont considérés comme TP. Je l'ai trouvé ici et dans le manuel correspondant. Cependant, je comprends leur calcul en supposant que leur calcul TP est correct.
J'espère que cela t'aides
la source
Vous pouvez calculer TN et FN de la même manière.
Changez simplement les rôles des étiquettes et des clusters .
... puis effectuez les mêmes calculs.
la source
Je pense que j'ai inversé l'ingénierie du faux négatif (FN). Pour les vrais positifs, vous avez fait 4 groupes qui étaient positifs. Dans le cluster 1, vous aviez les cinq a; dans le cluster 2, vous aviez les 4 b; dans le groupe 3, vous aviez les 3 c ET les 2 a.
Donc pour le faux négatif.
Par conséquent, vous avez (5 1) + (5 2) + (4 1) + (3 1) + (2 1) qui équivaut à 5 + 10 + 4 + 3 + 2 = 24. C'est de là que vient le 24, alors il suffit de soustraire cela des 136 que vous avez déjà trouvés pour obtenir le vrai neg (TN).
la source
Voici comment calculer chaque métrique pour Rand Index sans soustraire
Notes annexes pour une meilleure compréhension:
1) L'index Rand est basé sur la comparaison de paires d'éléments. La théorie suggère que des paires d'éléments similaires devraient être placées dans le même groupe, tandis que des paires d'éléments différents devraient être placées dans des groupes distincts.
2) RI ne se soucie pas de la différence de nombre de grappes. Il se soucie juste des paires d'éléments True / False.
Sur la base de cette hypothèse, l'indice Rand est calculé
Ok, plongeons ici est notre exemple:
Au dénominateur, nous avons le total de paires possibles, qui est
(17 2) = 136
Permet maintenant de calculer chaque métrique pour une meilleure compréhension:
A) Commençons par facile a , ( vrais positifs ou similaire similaire )
Cela signifie que vous devez trouver toutes les paires d'éléments possibles, où la prédiction et la véritable étiquette ont été placées ensemble. Sur l'exemple de la grille, cela signifie obtenir la somme des paires possibles dans chaque cellule.
C) Maintenant, faisons c ( faux positifs ou dissemblables incorrects )
Cela signifie, trouver toutes les paires, que nous avons placées ensemble, mais qui devraient être dans des grappes différentes. Sur un exemple de grille, cela signifie, trouver toutes les paires possibles entre 2 cellules horizontales quelconques
D) Calculer d ( faux négatif ou similaire incorrect ) Cela signifie, trouver toutes les paires que nous avons placées dans des grappes différentes, mais qui devraient être ensemble. Sur l'exemple de la grille, trouvez toutes les paires possibles entre 2 cellules verticales quelconques
B) Et, enfin, faisons b ( Vrais négatifs ou corrects dissemblables )
Cela signifie, trouver toutes les paires que nous avons placées dans des clusters différents, qui devraient également être dans des clusters différents. Sur la grille, cela signifie trouver toutes les paires possibles entre 2 cellules non verticales et non horizontales
Voici les nombres à multiplier pour mieux comprendre ce que je voulais dire:
En chiffres:
Et à la fin, l'indice Rand est égal:
(20 + 72) / 136 = 0.676
la source
Voici l'image qui décrit votre question:
Pour résoudre ce problème, vous devez considérer cette matrice:
Voici comment nous calculons TP, FN, FP pour Rand Index:
REMARQUE: Dans les équations ci-dessus, j'ai utilisé un triangle pour montrer le diamant dans l'image.
Par exemple, pour False Negative, nous devons choisir dans la classe mais dans différents clusters. Nous pouvons donc choisir
Enfin, nous aurons24 (= 5 + 10 + 4 + 2 + 3 ) États.
Il en va de même pour le reste des équations.
La partie la plus difficile est TN, ce qui peut être fait comme l'image ci-dessous:
Il existe des chemins plus courts pour calculer l'indice Rand, mais c'est le calcul en profondeur et étape par étape. Enfin, le tableau de contingence se présente comme suit:
la source