ما هو مؤشر راند؟ (تعريف وأمثلة)


يعد مؤشر Rand وسيلة لمقارنة تشابه النتائج بين طريقتين مختلفتين للتجميع.

غالبًا ما يُشار إليه بـ R ، ويتم حساب مؤشر Rand على النحو التالي:

ص = (أ+ب) / ( ن ج 2 )

ذهب:

  • أ: عدد المرات التي ينتمي فيها زوج من العناصر إلى نفس المجموعة وفقًا لطريقتين للتجميع.
  • ب: عدد المرات التي ينتمي فيها زوج من العناصر إلى مجموعات مختلفة وفقا لطريقتين للتجميع.
  • n C 2 : عدد الأزواج غير المرتبة في مجموعة من العناصر n .

يأخذ مؤشر Rand دائمًا قيمة تتراوح بين 0 و1 حيث:

  • 0: يشير إلى أن طريقتين للتجميع لا تتفقان على تجميع زوج من العناصر.
  • 1: يشير إلى أن طريقتي التجميع تتفقان تمامًا على تجميع كل زوج من العناصر.

يوضح المثال التالي كيفية حساب مؤشر Rand بين طريقتين للتجميع لمجموعة بيانات بسيطة.

مثال: كيفية حساب مؤشر الراند

لنفترض أن لدينا مجموعة البيانات التالية التي تتكون من خمسة عناصر:

  • مجموعة البيانات: {أ، ب، ج، د، هـ}

ولنفترض أننا نستخدم طريقتين للتجميع تضعان كل عنصر في المجموعات التالية:

  • مجموعات الطريقة الأولى: {1، 1، 1، 2، 2}
  • طريقة المجموعة 2: {1، 1، 2، 2، 3}

لحساب مؤشر Rand بين طرق التجميع هذه، نحتاج أولاً إلى تدوين جميع الأزواج غير المرتبة المحتملة في مجموعة البيانات المكونة من خمسة عناصر:

  • أزواج غير مرتبة: {A، B}، {A، C}، {A، D}، {A، E}، {B، C}، {B، D}، {B، E}، {C، D } ، {ج، ه}، {د، ه}

هناك 10 أزواج غير مرتبة.

بعد ذلك، نحتاج إلى حساب a ، الذي يمثل عدد الأزواج غير المرتبة التي تنتمي إلى نفس المجموعة في كلتا طريقتي التجميع:

  • {أب}

في هذه الحالة أ = 1 .

بعد ذلك، نحتاج إلى حساب b ، الذي يمثل عدد الأزواج غير المرتبة التي تنتمي إلى مجموعات مختلفة في طريقتي التجميع:

  • {أ، د}، {أ، ه}، {ب، د}، {ب، ه}، {ج، ه}

في هذه الحالة ب = 5 .

وأخيرا يمكننا حساب مؤشر الراند على النحو التالي:

  • ص = (أ+ب) / ( ن ج 2 )
  • ص = (1+5) / 10
  • ص = 6/10

مؤشر الراند هو 0.6 .

كيفية حساب مؤشر Rand في R

يمكننا استخدام الدالة rand.index() من الحزمة الأحفورية لحساب مؤشر Rand بين طريقتين للتجميع في 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

مؤشر الراند هو 0.6 . وهذا يتوافق مع القيمة التي حسبناها يدويًا.

كيفية حساب مؤشر راند في بايثون

يمكننا تحديد الوظيفة التالية في بايثون لحساب مؤشر Rand بين مجموعتين:

 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

وتبين أن مؤشر راند هو 0.6 . وهذا يتوافق مع القيمة المحسوبة في الأمثلة السابقة.

مصادر إضافية

مقدمة إلى K-Means Clustering
مقدمة إلى مجموعات K-Medoids
مقدمة إلى التجميع الهرمي

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *