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 တွက်နည်း

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

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