Co to jest indeks rand? (definicja i przykłady)


Indeks Rand umożliwia porównanie podobieństwa wyników uzyskanych pomiędzy dwiema różnymi metodami grupowania.

Często oznaczany jako R , indeks Rand oblicza się w następujący sposób:

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

Złoto:

  • a: ile razy para elementów należy do tego samego skupienia, zgodnie z dwiema metodami grupowania.
  • b: ile razy para elementów należy do klastrów różnicowych według dwóch metod grupowania.
  • n C 2 : Liczba par nieuporządkowanych w zbiorze n elementów.

Indeks Rand zawsze przyjmuje wartość z zakresu od 0 do 1, gdzie:

  • 0: wskazuje, że dwie metody grupowania nie zgadzają się co do grupowania pary elementów.
  • 1: Wskazuje, że dwie metody grupowania doskonale zgadzają się w zakresie grupowania każdej pary elementów.

Poniższy przykład ilustruje sposób obliczenia indeksu Rand między dwiema metodami grupowania dla prostego zbioru danych.

Przykład: Jak obliczyć indeks Rand

Załóżmy, że mamy następujący zbiór danych składający się z pięciu elementów:

  • Zbiór danych: {A, B, C, D, E}

Załóżmy, że używamy dwóch metod grupowania, które umieszczają każdy element w następujących klastrach:

  • Klastry metody 1: {1, 1, 1, 2, 2}
  • Metoda klastrowania 2: {1, 1, 2, 2, 3}

Aby obliczyć indeks Rand pomiędzy tymi metodami grupowania, musimy najpierw zapisać wszystkie możliwe pary nieuporządkowane w pięcioelementowym zbiorze danych:

  • Pary nieuporządkowane: {A, B}, {A, C}, {A, D}, {A, E}, {B, C}, {B, D}, {B, E}, {C, D } , {C, E}, {D, E}

Istnieje 10 par nieuporządkowanych.

Następnie musimy obliczyć a , które reprezentuje liczbę par nieuporządkowanych należących do tego samego klastra w obu metodach grupowania:

  • {AB}

W tym przypadku a = 1 .

Następnie musimy obliczyć b , które reprezentuje liczbę par nieuporządkowanych należących do różnych skupień w dwóch metodach grupowania:

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

W tym przypadku b = 5 .

Na koniec możemy obliczyć indeks Rand w następujący sposób:

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

Indeks Rand wynosi 0,6 .

Jak obliczyć indeks Rand w R

Możemy użyć funkcji rand.index() z pakietu paliwowego do obliczenia indeksu Rand pomiędzy dwiema metodami grupowania w 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

Indeks Rand wynosi 0,6 . Odpowiada to wartości, którą obliczyliśmy ręcznie.

Jak obliczyć indeks Rand w Pythonie

Możemy zdefiniować następującą funkcję w Pythonie, aby obliczyć indeks Rand między dwoma klastrami:

 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

Indeks Rand wynosi 0,6 . Odpowiada to wartości obliczonej w poprzednich przykładach.

Dodatkowe zasoby

Wprowadzenie do grupowania K-średnich
Wprowadzenie do grupowania K-Medoids
Wprowadzenie do grupowania hierarchicznego

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *