O que é o índice rand? (definição e exemplos)


O índice Rand é uma forma de comparar a similaridade de resultados entre dois métodos de agrupamento diferentes.

Muitas vezes denotado R , o índice Rand é calculado da seguinte forma:

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

Ouro:

  • a: o número de vezes que um par de elementos pertence ao mesmo cluster de acordo com dois métodos de agrupamento.
  • b: o número de vezes que um par de elementos pertence a clusters de diferença de acordo com dois métodos de clustering.
  • n C 2 : O número de pares não ordenados em um conjunto de n elementos.

O índice Rand sempre assume um valor entre 0 e 1 onde:

  • 0: indica que dois métodos de agrupamento não concordam com o agrupamento de um par de elementos.
  • 1: Indica que dois métodos de agrupamento concordam perfeitamente no agrupamento de cada par de elementos.

O exemplo a seguir ilustra como calcular o índice Rand entre dois métodos de cluster para um conjunto de dados simples.

Exemplo: Como calcular o índice Rand

Suponha que temos o seguinte conjunto de dados composto por cinco elementos:

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

E suponha que usemos dois métodos de agrupamento que colocam cada elemento nos seguintes agrupamentos:

  • Clusters do Método 1: {1, 1, 1, 2, 2}
  • Método de cluster 2: {1, 1, 2, 2, 3}

Para calcular o índice Rand entre esses métodos de agrupamento, primeiro precisamos anotar todos os pares não ordenados possíveis no conjunto de dados de cinco elementos:

  • Pares não ordenados: {A, B}, {A, C}, {A, D}, {A, E}, {B, C}, {B, D}, {B, E}, {C, D } , {C, E}, {D, E}

Existem 10 pares não ordenados.

A seguir, precisamos calcular a , que representa o número de pares não ordenados pertencentes ao mesmo cluster em ambos os métodos de agrupamento:

  • {AB}

Neste caso, a = 1 .

A seguir, precisamos calcular b , que representa o número de pares não ordenados pertencentes a diferentes clusters nos dois métodos de agrupamento:

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

Neste caso, b = 5 .

Finalmente, podemos calcular o índice Rand da seguinte forma:

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

O índice Rand é 0,6 .

Como calcular o índice Rand em R

Podemos usar a função rand.index() do pacote fossil para calcular o índice Rand entre dois métodos de agrupamento em 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

O índice Rand é 0,6 . Isso corresponde ao valor que calculamos manualmente.

Como calcular o índice Rand em Python

Podemos definir a seguinte função em Python para calcular o índice Rand entre dois 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

O índice Rand acabou sendo 0,6 . Isto corresponde ao valor calculado nos exemplos anteriores.

Recursos adicionais

Uma introdução ao agrupamento K-Means
Uma introdução ao cluster K-Medoids
Uma introdução ao cluster hierárquico

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *