Rand endeksi nedir? (tanım ve örnekler)


Rand endeksi, iki farklı kümeleme yöntemi arasındaki sonuçların benzerliğini karşılaştırmanın bir yoludur.

Çoğunlukla R olarak gösterilen Rand endeksi şu şekilde hesaplanır:

R = (a+b) / ( nC2 )

Altın:

  • a: iki kümeleme yöntemine göre bir öğe çiftinin aynı kümeye ait olma sayısı.
  • b: iki kümeleme yöntemine göre bir öğe çiftinin fark kümelerine ait olma sayısı.
  • n C 2 : n elemanlı bir kümedeki sırasız çiftlerin sayısı.

Rand endeksi her zaman 0 ile 1 arasında bir değer alır; burada:

  • 0: İki kümeleme yönteminin bir çift öğenin kümelenmesi konusunda anlaşmaya varmadığını gösterir.
  • 1: İki kümeleme yönteminin, her bir öğe çiftinin kümelenmesi konusunda mükemmel şekilde uyuştuğunu belirtir.

Aşağıdaki örnek, basit bir veri kümesi için iki kümeleme yöntemi arasında Rand dizininin nasıl hesaplanacağını gösterir.

Örnek: Rand endeksi nasıl hesaplanır?

Beş öğeden oluşan aşağıdaki veri setine sahip olduğumuzu varsayalım:

  • Veri kümesi: {A, B, C, D, E}

Ve her bir öğeyi aşağıdaki kümelere yerleştiren iki kümeleme yöntemi kullandığımızı varsayalım:

  • Yöntem 1 kümeleri: {1, 1, 1, 2, 2}
  • Küme yöntemi 2: {1, 1, 2, 2, 3}

Bu kümeleme yöntemleri arasında Rand endeksini hesaplamak için öncelikle beş öğeli veri kümesindeki tüm olası sırasız çiftleri yazmamız gerekir:

  • Sırasız çiftler: {A, B}, {A, C}, {A, D}, {A, E}, {B, C}, {B, D}, {B, E}, {C, D } , {C, E}, {D, E}

10 tane sırasız çift vardır.

Daha sonra, her iki kümeleme yönteminde de aynı kümeye ait sırasız çiftlerin sayısını temsil eden a’yı hesaplamamız gerekir:

  • {AB}

Bu durumda a = 1 olur.

Daha sonra, iki kümeleme yönteminde farklı kümelere ait sırasız çiftlerin sayısını temsil eden b’yi hesaplamamız gerekir:

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

Bu durumda b = 5 olur.

Son olarak Rand indeksini şu şekilde hesaplayabiliriz:

  • R = (a+b) / ( nC2 )
  • R = (1+5) / 10
  • R = 6/10

Rand endeksi 0,6’dır .

R’de Rand endeksi nasıl hesaplanır

R’deki iki kümeleme yöntemi arasındaki Rand indeksini hesaplamak için fosil paketindeki Rand.index() fonksiyonunu kullanabiliriz:

 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

Rand endeksi 0,6’dır . Bu bizim manuel olarak hesapladığımız değere karşılık geliyor.

Python’da Rand Dizini Nasıl Hesaplanır?

İki küme arasındaki Rand indeksini hesaplamak için Python’da aşağıdaki fonksiyonu tanımlayabiliriz:

 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

Rand endeksi 0,6 olarak çıkıyor. Bu, önceki örneklerde hesaplanan değere karşılık gelir.

Ek kaynaklar

K-Means Kümelenmesine Giriş
K-Medoids kümelemeye giriş
Hiyerarşik kümelemeye giriş

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir