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


जैककार्ड समानता सूचकांक दो डेटासेट के बीच समानता को मापता है। यह 0 से 1 तक हो सकता है। संख्या जितनी अधिक होगी, डेटा के दो सेट उतने ही अधिक समान होंगे।

जैकार्ड समानता सूचकांक की गणना निम्नानुसार की जाती है:

जैकार्ड समानता = (दोनों सेटों में अवलोकनों की संख्या) / (किसी भी सेट में संख्या)

या, संकेतन रूप में लिखा गया है:

जे(ए, बी) = |ए∩बी| / |ए∪बी|

यह ट्यूटोरियल बताता है कि आर में दो डेटासेट के लिए जैककार्ड समानता की गणना कैसे करें।

उदाहरण: आर में जैककार्ड समानता

मान लीजिए हमारे पास डेटा के निम्नलिखित दो सेट हैं:

 a <- c(0, 1, 2, 5, 6, 8, 9)
b <- c(0, 2, 3, 4, 5, 7, 9)

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

 #define Jaccard Similarity function
jaccard <- function (a, b) {
    intersection = length ( intersect (a,b))
    union = length (a) + length (b) - intersection
    return (intersection/union)
}

#find Jaccard Similarity between the two sets 
jaccard(a, b)

0.4

दोनों सूचियों के बीच जैककार्ड समानता 0.4 है।

ध्यान दें कि यदि दोनों सेटों में कोई मान साझा नहीं है तो फ़ंक्शन 0 लौटाएगा:

 c <- c(0, 1, 2, 3, 4, 5)
d <- c(6, 7, 8, 9, 10)

jaccard(c, d)

[1] 0

और यदि दोनों सेट समान हैं तो फ़ंक्शन 1 लौटाएगा:

 e <- c(0, 1, 2, 3, 4, 5)
f <- c(0, 1, 2, 3, 4, 5)

jaccard(e, f)

[1] 1

फ़ंक्शन स्ट्रिंग वाले सेट के लिए भी काम करता है:

 g <- c(' cat ', ' dog ', ' hippo ', ' monkey ')
h <- c(' monkey ', ' rhino ', ' ostrich ', ' salmon ')

jaccard(g, h)

0.142857

आप इस फ़ंक्शन का उपयोग दो सेटों के बीच जैकार्ड दूरी को खोजने के लिए भी कर सकते हैं, जो दो सेटों के बीच असमानता है और इसकी गणना 1 – जैकार्ड समानता के रूप में की जाती है।

 a <- c(0, 1, 2, 5, 6, 8, 9)
b <- c(0, 2, 3, 4, 5, 7, 9)

#find Jaccard distance between sets a and b
1 - jaccard(a, b)

[1] 0.6

जैकार्ड समानता सूचकांक के बारे में अधिक जानने के लिए इस विकिपीडिया पृष्ठ को देखें।

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

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