रैंड इंडेक्स क्या है? (परिभाषा एवं उदाहरण)


रैंड इंडेक्स दो अलग-अलग क्लस्टरिंग विधियों के बीच परिणामों की समानता की तुलना करने का एक तरीका है।

अक्सर आर से चिह्नित, रैंड इंडेक्स की गणना निम्नानुसार की जाती है:

आर = (ए+बी) / ( एन सी 2 )

सोना:

  • ए: दो क्लस्टरिंग विधियों के अनुसार तत्वों की एक जोड़ी एक ही क्लस्टर से संबंधित होने की संख्या।
  • बी: दो क्लस्टरिंग विधियों के अनुसार तत्वों की एक जोड़ी अलग-अलग समूहों से संबंधित होने की संख्या।
  • एन सी 2 : एन तत्वों के एक सेट में अव्यवस्थित जोड़े की संख्या।

रैंड इंडेक्स हमेशा 0 और 1 के बीच मान लेता है जहां:

  • 0: इंगित करता है कि दो क्लस्टरिंग विधियाँ तत्वों की एक जोड़ी की क्लस्टरिंग पर सहमत नहीं हैं।
  • 1: इंगित करता है कि दो क्लस्टरिंग विधियां तत्वों की प्रत्येक जोड़ी की क्लस्टरिंग पर पूरी तरह सहमत हैं।

निम्नलिखित उदाहरण दिखाता है कि एक साधारण डेटासेट के लिए दो क्लस्टरिंग विधियों के बीच रैंड इंडेक्स की गणना कैसे करें।

उदाहरण: रैंड इंडेक्स की गणना कैसे करें

मान लीजिए कि हमारे पास निम्नलिखित डेटा सेट है जिसमें पाँच तत्व शामिल हैं:

  • डेटासेट: {ए, बी, सी, डी, ई}

और मान लीजिए कि हम दो क्लस्टरिंग विधियों का उपयोग करते हैं जो प्रत्येक तत्व को निम्नलिखित क्लस्टर में रखते हैं:

  • विधि 1 क्लस्टर: {1, 1, 1, 2, 2}
  • क्लस्टर विधि 2: {1, 1, 2, 2, 3}

इन क्लस्टरिंग विधियों के बीच रैंड इंडेक्स की गणना करने के लिए, हमें पहले पांच-तत्व डेटासेट में सभी संभावित अव्यवस्थित जोड़े को लिखना होगा:

  • अव्यवस्थित जोड़े: {ए, बी}, {ए, सी}, {ए, डी}, {ए, ई}, {बी, सी}, {बी, डी}, {बी, ई}, {सी, डी } , {सी, ई}, {डी, ई}

10 अव्यवस्थित जोड़े हैं।

इसके बाद, हमें गणना करने की आवश्यकता है, जो दोनों क्लस्टरिंग विधियों में एक ही क्लस्टर से संबंधित अव्यवस्थित जोड़े की संख्या का प्रतिनिधित्व करता है:

  • {एबी}

इस मामले में, ए = 1 .

इसके बाद, हमें b की गणना करने की आवश्यकता है, जो दो क्लस्टरिंग विधियों में विभिन्न समूहों से संबंधित अव्यवस्थित जोड़े की संख्या का प्रतिनिधित्व करता है:

  • {ए, डी}, {ए, ई}, {बी, डी}, {बी, ई}, {सी, ई}

इस मामले में, बी = 5 .

अंत में, हम रैंड इंडेक्स की गणना इस प्रकार कर सकते हैं:

  • आर = (ए+बी) / ( एन सी 2 )
  • आर = (1+5)/10
  • आर = 6/10

रैंड इंडेक्स 0.6 है।

आर में रैंड इंडेक्स की गणना कैसे करें

हम आर में दो क्लस्टरिंग विधियों के बीच रैंड इंडेक्स की गणना करने के लिए जीवाश्म पैकेज से rand.index() फ़ंक्शन का उपयोग कर सकते हैं:

 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 है। यह उस मान से मेल खाता है जिसकी हमने मैन्युअल रूप से गणना की थी।

पायथन में रैंड इंडेक्स की गणना कैसे करें

हम दो समूहों के बीच रैंड इंडेक्स की गणना करने के लिए पायथन में निम्नलिखित फ़ंक्शन को परिभाषित कर सकते हैं:

 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 निकला। यह पिछले उदाहरणों में गणना किए गए मान से मेल खाता है।

अतिरिक्त संसाधन

के-मीन्स क्लस्टरिंग का एक परिचय
के-मेडोइड्स क्लस्टरिंग का परिचय
पदानुक्रमित क्लस्टरिंग का परिचय

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *