Python တွင် jaccard တူညီမှုကို တွက်နည်း


Jaccard တူညီမှုအညွှန်းကိန်းသည် ဒေတာအတွဲနှစ်ခုကြားရှိ တူညီမှုကိုတိုင်းတာသည်။ ၎င်းသည် 0 မှ 1 အထိ ကွာဟနိုင်သည်။ အရေအတွက်များလေ၊ ဒေတာ အတွဲနှစ်ခုသည် ပို၍ဆင်တူလေဖြစ်သည်။

Jaccard ဆင်တူယိုးမှား အညွှန်းကိန်းကို အောက်ပါအတိုင်း တွက်ချက်ပါသည်။

Jaccard ဆင်တူယိုးမှား = (အတွဲနှစ်ခုစလုံးတွင် လေ့လာတွေ့ရှိချက်အရေအတွက်) / (တစ်စုံတစ်ခုအတွက် အရေအတွက်)

သို့မဟုတ် အမှတ်အသားပုံစံဖြင့် ရေးထားသည်-

J(A၊ B) = |A∩B| / |A∪B|

ဤသင်ခန်းစာတွင် Python ရှိ ဒေတာအတွဲနှစ်ခုအတွက် Jaccard တူညီမှုကို တွက်ချက်နည်းကို ရှင်းပြထားသည်။

ဥပမာ- Python တွင် Jaccard ဆင်တူသည်။

ကျွန်ုပ်တို့တွင် အောက်ပါဒေတာ နှစ်စုံရှိသည်ဆိုပါစို့။

 import numpy as np

a = [0, 1, 2, 5, 6, 8, 9]
b = [0, 2, 3, 4, 5, 7, 9]

အစုံနှစ်ခုကြားရှိ Jaccard တူညီမှုကို တွက်ချက်ရန် အောက်ပါလုပ်ဆောင်ချက်ကို ကျွန်ုပ်တို့ သတ်မှတ်နိုင်သည်-

 #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

စာရင်းနှစ်ခုကြားရှိ Jaccard တူညီမှုသည် 0.4 ဖြစ်သည်။

အတွဲနှစ်ခုသည် တန်ဖိုးများမမျှဝေပါက လုပ်ဆောင်ချက်သည် 0 ပြန်လာမည်ကို သတိပြုပါ-

 c = [0, 1, 2, 3, 4, 5]
d = [6, 7, 8, 9, 10]

jaccard(c, d)

0.0

အစုံလိုက်နှစ်ခု တူညီပါက function သည် 1 သို့ ပြန်သွားလိမ့်မည်-

 e = [0, 1, 2, 3, 4, 5]
f = [0, 1, 2, 3, 4, 5]

jaccard(e, f)

1.0

လုပ်ဆောင်ချက်သည် စာကြောင်းများပါရှိသော set များအတွက်လည်း အလုပ်လုပ်သည်-

 g = ['cat', 'dog', 'hippo', 'monkey']
h = ['monkey', 'rhino', 'ostrich', 'salmon']

jaccard(g, h)

0.142857

အတွဲနှစ်ခုကြားရှိ Jaccard အကွာအဝေးကို ရှာဖွေရန် ဤလုပ်ဆောင်ချက်ကို သင်အသုံးပြု၍ ၎င်းသည် အတွဲနှစ်ခုကြားရှိ ကွဲပြားမှု ဖြစ်ပြီး 1 – Jaccard Similarity အဖြစ် တွက်ချက်သည်။

 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

ဆက်စပ်- R တွင် Jaccard တူညီမှုကို တွက်ချက်နည်း

Jaccard Similarity Index အကြောင်း ပိုမိုလေ့လာရန် ဤ Wikipedia စာမျက်နှာ ကို ကြည့်ပါ။

မှတ်ချက်တစ်ခုထည့်ပါ။

သင့် email လိပ်စာကို ဖော်ပြမည် မဟုတ်ပါ။ လိုအပ်သော ကွက်လပ်များကို * ဖြင့်မှတ်သားထားသည်