R တွင် dist function ကိုအသုံးပြုနည်း (ဥပမာများနှင့်အတူ)
R ရှိ dist() လုပ်ဆောင်ချက်ကို မက်ထရစ် သို့မဟုတ် ဒေတာဘောင်ရှိ အတန်းများကြား အကွာအဝေးကို ပြသသည့် အကွာအဝေး မက်ထရစ်ကို တွက်ချက်ရန် အသုံးပြုနိုင်သည်။
ဤလုပ်ဆောင်ချက်သည် အောက်ပါအခြေခံ syntax ကိုအသုံးပြုသည်-
dist(x၊ method=” ယူကလစ်” )
ရွှေ-
- x- matrix သို့မဟုတ် data block ၏အမည်။
- နည်းလမ်း- အသုံးပြုရန် အကွာအဝေးတိုင်းတာခြင်း။ မူရင်းမှာ “ Euclidean” ဖြစ်သော်လည်း ရွေးချယ်မှုများတွင် “ အမြင့်ဆုံး” , “ မန်ဟက်တန်” , “ ကန်ဘာရာ” , “ binary” သို့မဟုတ် “ minkowski” ပါဝင်သည်။
အောက်ပါဥပမာများသည် အောက်ပါဒေတာဘောင်ဖြင့် ဤလုပ်ဆောင်ချက်ကို လက်တွေ့အသုံးချနည်းကို ပြသသည်-
#define four vectors a <- c(2, 4, 4, 6) b <- c(5, 5, 7, 8) c <- c(9, 9, 9, 8) d <- c(1, 2, 3, 3) #row bind four vectors into matrix mat <- rbind(a, b, c, d) #view matrix mast [,1] [,2] [,3] [,4] a 2 4 4 6 b 5 5 7 8 c 9 9 9 8 d 1 2 3 3
ဥပမာ 1- ယူကလစ်အကွာအဝေးကိုတွက်ချက်ရန် dist() ကိုသုံးပါ။
Vector A နှင့် B နှစ်ခုကြားရှိ Euclidean အကွာအဝေးကို အောက်ပါအတိုင်း တွက်ချက်သည်။
ယူကလစ်အကွာအဝေး = √ Σ(A i -B i ) ၂
အောက်ပါကုဒ်သည် R တွင် matrix တစ်ခုစီ၏အတန်းတစ်ခုစီကြားရှိ Euclidean အကွာအဝေးကိုပြသသည့် အကွာအဝေးမက်ထရစ်ကို တွက်ချက်နည်းကို ပြသသည်-
#calculate Euclidean distance between each row in matrix
dist(mat)
ABC
b4.795832
c 10.148892 6.000000
d 3.872983 8.124038 13.190906
ဤသည်မှာ ရလဒ်ကို မည်သို့အဓိပ္ပာယ်ဖွင့်ဆိုနိုင်သည်-
- လိုင်း a နှင့် လိုင်း b အကြား Euclidean အကွာအဝေးမှာ 4.795832 ဖြစ်သည်။
- လိုင်း a နှင့် လိုင်း c အကြား Euclidean အကွာအဝေးသည် 10.148892 ဖြစ်သည်။
- လိုင်း a နှင့် လိုင်း d အကြား Euclidean အကွာအဝေးသည် 3.872983 ဖြစ်သည်။
- လိုင်း b နှင့် လိုင်း c အကြား Euclidean အကွာအဝေးသည် 6.000000 ဖြစ်သည်။
- လိုင်း b နှင့် လိုင်း d အကြား Euclidean အကွာအဝေးမှာ 8.124038 ဖြစ်သည်။
- လိုင်း c နှင့် လိုင်း d အကြား Euclidean အကွာအဝေးသည် 13.190906 ဖြစ်သည်။
ဥပမာ 2- အများဆုံးအကွာအဝေးကိုတွက်ချက်ရန် dist() ကိုသုံးပါ။
Vector နှစ်ခုဖြစ်သည့် A နှင့် B အကြား အမြင့်ဆုံးအကွာအဝေးကို pairwise ဒြပ်စင်များအကြား အများဆုံးခြားနားချက်အဖြစ် တွက်ချက်သည်။
အောက်ပါကုဒ်သည် R တွင် matrix တစ်ခုစီ၏ အတန်းတစ်ခုစီ၏ အမြင့်ဆုံးအကွာအဝေးကိုပြသသည့် အကွာအဝေး matrix ကို တွက်ချက်နည်းကို ပြသသည်-
#calculate Maximum distance between each row in matrix dist(mat, method=" maximum ") ABC b 3 c 7 4 d 3 5 8
ဥပမာ 3- Canberra မှအကွာအဝေးကိုတွက်ချက်ရန် dist() ကိုသုံးပါ။
Vector A နှင့် B နှစ်ခုကြားရှိ Canberra အကွာအဝေး ကို အောက်ပါအတိုင်း တွက်ချက်ပါသည်။
ကင်ဘာရာမှ အကွာအဝေး = Σ |A i -B i | / | AI | +| Bje |
အောက်ပါကုဒ်သည် R တွင် matrix တစ်ခုစီ၏အတန်းတစ်ခုစီကြားရှိ Canberra အကွာအဝေးကိုပြသသည့် အကွာအဝေး matrix ကို တွက်ချက်နည်းကို ပြသသည်-
#calculate Canberra distance between each row in matrix dist(mat, method=" canberra ") ABC b 0.9552670 c 1.5484515 0.6964286 d 1.1428571 1.9497835 2.3909091
ဥပမာ 4- binary အကွာအဝေးကိုတွက်ချက်ရန် dist() ကိုသုံးပါ။
Vector နှစ်ခုဖြစ်သည့် A နှင့် B ကြားရှိ ဒွိအကွာအဝေးကို vectors နှစ်ခုမျှဝေသည့် ဒြပ်စင်အချိုးအဖြစ် တွက်ချက်သည်။
အောက်ပါကုဒ်သည် R တွင် matrix တစ်ခုစီ၏ အတန်းတစ်ခုစီကြားရှိ binary အကွာအဝေးကိုပြသသည့် အကွာအဝေး matrix ကို တွက်ချက်နည်းကို ပြသသည်-
#calculate Binary distance between each row in matrix dist(mat, method=" binary ") ABC b 0 c 0 0 d 0 0 0
ဥပမာ 5- Minkowski အကွာအဝေးကိုတွက်ချက်ရန် dist() ကိုသုံးပါ။
Vector A နှင့် B နှစ်ခုကြား Minkowski အကွာအဝေး ကို အောက်ပါအတိုင်း တွက်ချက်သည် ။
Minkowski အကွာအဝေး = (Σ|a i – b i | p ) 1/p
i သည် vector တစ်ခုစီ၏ i th element ဖြစ်ပြီး p သည် integer ဖြစ်သည်။
အောက်ဖော်ပြပါကုဒ်သည် R ရှိ matrix တစ်ခုစီ၏အတန်းတစ်ခုစီကြား Minkowski အကွာအဝေး (p=3 ကိုအသုံးပြု၍) အကွာအဝေးကိုပြသသည့်အကွာအဝေး matrix ကိုတွက်ချက်နည်းကိုပြသသည်-
#calculate Minkowski distance between each row in matrix dist(mat, method=" minkowski ", p= 3 ) ABC b 3.979057 c 8.439010 5.142563 d 3.332222 6.542133 10.614765
ထပ်လောင်းအရင်းအမြစ်များ
R တွင် Jaccard တူညီမှုကို တွက်နည်း
R တွင် cosine တူညီမှုကို တွက်နည်း
R တွင် dot product တွက်နည်း