Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Qu’est-ce que l’indice Rand ? (Définition & Exemples)



L’ indice Rand est un moyen de comparer la similarité des résultats entre deux méthodes de clustering différentes.

Souvent noté R , l’indice Rand est calculé comme suit :

R = (une+b) / ( n C 2 )

où:

  • a : le nombre de fois qu’une paire d’éléments appartient au même cluster selon deux méthodes de clustering.
  • b : le nombre de fois qu’une paire d’éléments appartient à des clusters de différence selon deux méthodes de clustering.
  • n C 2 : Le nombre de paires non ordonnées dans un ensemble de n éléments.

L’indice Rand prend toujours une valeur comprise entre 0 et 1 où :

  • 0 : indique que deux méthodes de clustering ne s’accordent pas sur le clustering d’une paire d’éléments.
  • 1 : Indique que deux méthodes de clustering s’accordent parfaitement sur le clustering de chaque paire d’éléments.

L’exemple suivant illustre comment calculer l’indice Rand entre deux méthodes de clustering pour un ensemble de données simple.

Exemple : Comment calculer l’indice Rand

Supposons que nous ayons l’ensemble de données suivant composé de cinq éléments :

  • Ensemble de données : {A, B, C, D, E}

Et supposons que nous utilisions deux méthodes de clustering qui placent chaque élément dans les clusters suivants :

  • Clusters de méthode 1 : {1, 1, 1, 2, 2}
  • Clusters méthode 2 : {1, 1, 2, 2, 3}

Pour calculer l’indice de Rand entre ces méthodes de clustering, nous devons d’abord écrire toutes les paires non ordonnées possibles dans l’ensemble de données de cinq éléments :

  • Paires non ordonnées : {A, B}, {A, C}, {A, D}, {A, E}, {B, C}, {B, D}, {B, E}, {C, D} , {C, E}, {D, E}

Il y a 10 paires non ordonnées.

Ensuite, nous devons calculer a , qui représente le nombre de paires non ordonnées appartenant au même cluster dans les deux méthodes de clustering :

  • {UN B}

Dans ce cas, a = 1 .

Ensuite, nous devons calculer b , qui représente le nombre de paires non ordonnées appartenant à différents clusters dans les deux méthodes de clustering :

  • {A, D}, {A, E}, {B, D}, {B, E}, {C, E}

Dans ce cas, b = 5 .

Enfin, nous pouvons calculer l’indice Rand comme suit :

  • R = (une+b) / ( n C 2 )
  • R = (1+5) / 10
  • R = 6/10

L’indice Rand est de 0,6 .

Comment calculer l’indice Rand dans R

Nous pouvons utiliser la fonction rand.index() du package fossil pour calculer l’indice Rand entre deux méthodes de clustering dans R :

library(fossil)

#define clusters
method1 <- c(1, 1, 1, 2, 2)
method2 <- c(1, 1, 2, 2, 3)

#calculate Rand index between clustering methods
rand.index(method1, method2)

[1] 0.6

L’indice Rand est de 0,6 . Cela correspond à la valeur que nous avons calculée manuellement.

Comment calculer l’indice Rand en Python

On peut définir la fonction suivante en Python pour calculer l’indice Rand entre deux clusters :

import numpy as np
from scipy.special import comb

#define Rand index function
def rand_index(actual, pred):

    tp_plus_fp = comb(np.bincount(actual), 2).sum()
    tp_plus_fn = comb(np.bincount(pred), 2).sum()
    A = np.c_[(actual, pred)]
    tp = sum(comb(np.bincount(A[A[:, 0] == i, 1]), 2).sum()
             for i in set(actual))
    fp = tp_plus_fp - tp
    fn = tp_plus_fn - tp
    tn = comb(len(A), 2) - tp - fp - fn
    return (tp + tn) / (tp + fp + fn + tn)

#calculate Rand index
rand_index([1, 1, 1, 2, 2], [1, 1, 2, 2, 3])

0.6

L’indice Rand s’avère être de 0,6 . Cela correspond à la valeur calculée dans les exemples précédents.

Ressources additionnelles

Une introduction au clustering K-Means
Une introduction au clustering K-Medoids
Une introduction au clustering hiérarchique

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *