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