पायथन में जैकार्ड समानता की गणना कैसे करें
जैककार्ड समानता सूचकांक दो डेटासेट के बीच समानता को मापता है। यह 0 से 1 तक हो सकता है। संख्या जितनी अधिक होगी, डेटा के दो सेट उतने ही अधिक समान होंगे।
जैकार्ड समानता सूचकांक की गणना निम्नानुसार की जाती है:
जैकार्ड समानता = (दोनों सेटों में अवलोकनों की संख्या) / (किसी भी सेट में संख्या)
या, संकेतन रूप में लिखा गया है:
जे(ए, बी) = |ए∩बी| / |ए∪बी|
यह ट्यूटोरियल बताता है कि पायथन में दो डेटासेट के लिए जैकार्ड समानता की गणना कैसे करें।
उदाहरण: पायथन में जैकार्ड समानता
मान लीजिए हमारे पास डेटा के निम्नलिखित दो सेट हैं:
import numpy as np a = [0, 1, 2, 5, 6, 8, 9] b = [0, 2, 3, 4, 5, 7, 9]
हम दो सेटों के बीच जैकार्ड समानता की गणना करने के लिए निम्नलिखित फ़ंक्शन को परिभाषित कर सकते हैं:
#define Jaccard Similarity function def jaccard(list1, list2): intersection = len(list(set(list1).intersection(list2))) union = (len(list1) + len(list2)) - intersection return float(intersection) / union #find Jaccard Similarity between the two sets jaccard(a, b) 0.4
दोनों सूचियों के बीच जैककार्ड समानता 0.4 है।
ध्यान दें कि यदि दोनों सेटों में कोई मान साझा नहीं है तो फ़ंक्शन 0 लौटाएगा:
c = [0, 1, 2, 3, 4, 5] d = [6, 7, 8, 9, 10] jaccard(c, d) 0.0
और यदि दोनों सेट समान हैं तो फ़ंक्शन 1 लौटाएगा:
e = [0, 1, 2, 3, 4, 5] f = [0, 1, 2, 3, 4, 5] jaccard(e, f) 1.0
फ़ंक्शन स्ट्रिंग वाले सेट के लिए भी काम करता है:
g = ['cat', 'dog', 'hippo', 'monkey'] h = ['monkey', 'rhino', 'ostrich', 'salmon'] jaccard(g, h) 0.142857
आप इस फ़ंक्शन का उपयोग दो सेटों के बीच जैकार्ड दूरी को खोजने के लिए भी कर सकते हैं, जो दो सेटों के बीच असमानता है और इसकी गणना 1 – जैकार्ड समानता के रूप में की जाती है।
a = [0, 1, 2, 5, 6, 8, 9]
b = [0, 2, 3, 4, 5, 7, 9]
#find Jaccard distance between sets a and b
1 - jaccard(a, b)
0.6
संबंधित: आर में जैककार्ड समानता की गणना कैसे करें
जैकार्ड समानता सूचकांक के बारे में अधिक जानने के लिए इस विकिपीडिया पृष्ठ को देखें।