¿Qué es el índice Rand? (Definición y ejemplos)

El índice Rand es una forma de comparar la similitud de resultados entre dos métodos de agrupación diferentes.

Denominado a menudo R , el índice Rand se calcula como:

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

dónde:

  • a: El número de veces que un par de elementos pertenece al mismo grupo en dos métodos de agrupamiento.
  • b: El número de veces que un par de elementos pertenecen a grupos de diferencias en dos métodos de agrupamiento.
  • n C 2 : El número de pares desordenados en un conjunto de n elementos.

El índice Rand siempre toma un valor entre 0 y 1 donde:

  • 0: indica que dos métodos de agrupación en clúster no coinciden en la agrupación de ningún par de elementos.
  • 1: indica que dos métodos de agrupación concuerdan perfectamente en la agrupación de cada par de elementos.

El siguiente ejemplo ilustra cómo calcular el índice Rand entre dos métodos de agrupamiento para un conjunto de datos simple.

Ejemplo: cómo calcular el índice Rand

Supongamos que tenemos el siguiente conjunto de datos de cinco elementos:

  • Conjunto de datos: {A, B, C, D, E}

Y supongamos que usamos dos métodos de agrupamiento que ubican cada elemento en los siguientes grupos:

  • Clústeres del método 1: {1, 1, 1, 2, 2}
  • Clústeres del método 2: {1, 1, 2, 2, 3}

Para calcular el índice Rand entre estos métodos de agrupación, primero debemos escribir cada posible par desordenado en el conjunto de datos de cinco elementos:

  • Pares desordenados: {A, B}, {A, C}, {A, D}, {A, E}, {B, C}, {B, D}, {B, E}, {C, D} , {CEDE}

Hay 10 pares desordenados.

A continuación, necesitamos calcular a , que representa el número de pares desordenados que pertenecen al mismo grupo en ambos métodos de agrupamiento:

  • {A, B}

En este caso, a = 1 .

A continuación, necesitamos calcular b , que representa la cantidad de pares desordenados que pertenecen a diferentes clústeres en ambos métodos de clúster:

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

En este caso, b = 5 .

Por último, podemos calcular el índice Rand como:

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

El índice Rand es 0,6 .

Cómo calcular el índice Rand en R

Podemos usar la función rand.index () del paquete fossil para calcular el índice Rand entre dos métodos de agrupamiento en R:

biblioteca (fósil)

#define clusters
 method1 <- c (1, 1, 1, 2, 2)
método2 <- c (1, 1, 2, 2, 3)

#calcular el índice Rand entre los métodos de agrupación
 rand. índice (método1, método2)

[1] 0,6

El índice Rand es 0,6 . Esto coincide con el valor que calculamos a mano.

Cómo calcular el índice Rand en Python

Podemos definir la siguiente función en Python para calcular el índice Rand entre dos clústeres:

importar numpy como np
 desde scipy. peine de importación especial 

#define la función de índice Rand
 def  rand_index (actual, pred):

    tp_plus_fp = comb (np. bincount (actual), 2). suma ()
    tp_plus_fn = comb (np. bincount (pred), 2). suma ()
    A = np. c_ [(actual, pred)]
    tp = sum (comb (np. bincount (A [A [:, 0] == i, 1]), 2). sum ()
              para i en el conjunto (actual))
    fp = tp_plus_fp - tp
    fn = tp_plus_fn - tp
    tn = peine (len (A), 2) - tp - fp - fn
    return (tp + tn) / (tp + fp + fn + tn)

#calcular el índice Rand
 rand_index ([1, 1, 1, 2, 2], [1, 1, 2, 2, 3])

0,6

El índice Rand resulta ser 0,6 . Esto coincide con el valor calculado en los ejemplos anteriores.

Recursos adicionales

Una introducción a la agrupación de K-medias
Una introducción a la agrupación de K-Medoides
Una introducción a la agrupación jerárquica

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

Para encontrar la diferencia entre dos columnas en un DataFrame de pandas, puede usar la siguiente sintaxis: df [' diferencia…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!