Apa itu indeks rand? (definisi & contoh)


Indeks Rand adalah cara untuk membandingkan kesamaan hasil antara dua metode pengelompokan yang berbeda.

Sering dilambangkan R , indeks Rand dihitung sebagai berikut:

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

Emas:

  • a: berapa kali sepasang elemen menjadi anggota cluster yang sama menurut dua metode clustering.
  • b: berapa kali sepasang elemen termasuk dalam cluster yang berbeda menurut dua metode pengelompokan.
  • n C 2 : Banyaknya pasangan tak berurutan dalam himpunan yang terdiri dari n elemen.

Indeks Rand selalu mengambil nilai antara 0 dan 1 dimana:

  • 0: menunjukkan bahwa dua metode pengelompokan tidak menyetujui pengelompokan sepasang elemen.
  • 1: Menunjukkan bahwa dua metode pengelompokan sangat cocok dalam pengelompokan setiap pasangan elemen.

Contoh berikut mengilustrasikan cara menghitung indeks Rand antara dua metode pengelompokan untuk kumpulan data sederhana.

Contoh: Cara menghitung indeks Rand

Misalkan kita memiliki kumpulan data berikut yang terdiri dari lima elemen:

  • Kumpulan data: {A, B, C, D, E}

Dan misalkan kita menggunakan dua metode pengelompokan yang menempatkan setiap elemen ke dalam kelompok berikut:

  • Cluster metode 1: {1, 1, 1, 2, 2}
  • Metode cluster 2: {1, 1, 2, 2, 3}

Untuk menghitung indeks Rand antara metode pengelompokan ini, pertama-tama kita perlu menuliskan semua kemungkinan pasangan tak berurutan dalam kumpulan data lima elemen:

  • Pasangan tak berurutan: {A, B}, {A, C}, {A, D}, {A, E}, {B, C}, {B, D}, {B, E}, {C, D } , {C, E}, {D, E}

Ada 10 pasangan tak berurutan.

Selanjutnya, kita perlu menghitung a , yang mewakili jumlah pasangan tak berurutan yang termasuk dalam cluster yang sama di kedua metode clustering:

  • {AB}

Dalam hal ini, a = 1 .

Selanjutnya, kita perlu menghitung b , yang mewakili jumlah pasangan tak berurutan milik cluster berbeda dalam dua metode clustering:

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

Dalam hal ini, b = 5 .

Terakhir, kita dapat menghitung indeks Rand sebagai berikut:

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

Indeks Rand adalah 0,6 .

Cara menghitung indeks Rand di R

Kita dapat menggunakan fungsi rand.index() dari paket fosil untuk menghitung indeks Rand antara dua metode pengelompokan di 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 adalah 0,6 . Ini sesuai dengan nilai yang kami hitung secara manual.

Cara Menghitung Indeks Rand dengan Python

Kita dapat mendefinisikan fungsi berikut dengan Python untuk menghitung indeks Rand antara dua cluster:

 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 ternyata 0,6 . Ini sesuai dengan nilai yang dihitung pada contoh sebelumnya.

Sumber daya tambahan

Pengantar Pengelompokan K-Means
Pengantar pengelompokan K-Medoids
Pengantar pengelompokan hierarki

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *