Rand index ဆိုတာဘာလဲ။ (အဓိပ္ပါယ်နှင့် ဥပမာများ)
Rand အညွှန်းကိန်း သည် မတူညီသောအစုအဝေးနှစ်ခုကြားရှိ ရလဒ်များ၏တူညီမှုကို နှိုင်းယှဉ်ရန်နည်းလမ်းတစ်ခုဖြစ်သည်။
R ကို ရည်ညွှန်းလေ့ရှိသည်၊ Rand အညွှန်းကို အောက်ပါအတိုင်း တွက်ချက်သည်။
R = (a+b) / ( n C 2 )
ရွှေ-
- a- ဒြပ်စင်တစ်စုံသည် အစုလိုက်ပြုလုပ်ခြင်းနည်းလမ်းနှစ်ခုအရ တူညီသောအစုအဝေးတွင်ရှိသော အကြိမ်အရေအတွက်။
- b- ဒြပ်စင်တစ်စုံသည် အစုလိုက်ပြုလုပ်ခြင်းနည်းလမ်းနှစ်ခုအရ ကွဲပြားမှုအစုအဝေးများထံ အကြိမ်အရေအတွက်။
- n C 2 : n ဒြပ်စင်အစုတစ်ခုရှိ အစီအစဥ်မရှိသောအတွဲအရေအတွက်။
Rand အညွှန်းကိန်းသည် 0 နှင့် 1 အကြား တန်ဖိုးတစ်ခုကို အမြဲယူသည်-
- 0- ဒြပ်စင်တစ်စုံ၏အစုအဝေးကို အစုလိုက်ပြုလုပ်ခြင်းအပေါ် သဘောမတူကြောင်း ညွှန်ပြသည်။
- 1- ဒြပ်စင်တစ်စုံစီ၏ အစုအဝေးတစ်ခုစီကို အစုလိုက်အပြုံလိုက်ပြုလုပ်ခြင်းအပေါ် အပြည့်အဝသဘောတူကြောင်း ညွှန်ပြသည်။
အောက်ပါဥပမာသည် ရိုးရှင်းသောဒေတာအတွဲတစ်ခုအတွက် အစုလိုက်ပြုလုပ်သည့်နည်းလမ်းနှစ်ခုကြားရှိ Rand အညွှန်းကိန်းကို တွက်ချက်နည်းကို ဖော်ပြသည်။
ဥပမာ- Rand အညွှန်းကိန်းကို ဘယ်လိုတွက်မလဲ။
ကျွန်ုပ်တို့တွင် ဒြပ်စင်ငါးခုပါ၀င်သော အောက်ပါဒေတာအစုံရှိသည်ဆိုပါစို့။
- ဒေတာအတွဲ- {A၊ B၊ C၊ D၊ E}
ကျွန်ုပ်တို့သည် အောက်ပါအစုအဝေးများထဲသို့ ဒြပ်စင်တစ်ခုစီကို နေရာချပေးသည့် အစုလိုက်နည်းလမ်းနှစ်ခုကို အသုံးပြုသည်ဆိုပါစို့။
- နည်းလမ်း 1 အစုအဝေးများ- {1၊ 1၊ 1၊ 2၊ 2}
- အစုလိုက်နည်းလမ်း 2- {1၊ 1၊ 2၊ 2၊ 3}
ဤအစုအဝေးနည်းလမ်းများအကြား Rand အညွှန်းကိန်းကို တွက်ချက်ရန်၊ ကျွန်ုပ်တို့သည် ပထမအချက်ငါးချက်ပါဒေတာအတွဲတွင် ဖြစ်နိုင်ချေရှိသော အတွဲအားလုံးကို ချရေးရန် လိုအပ်သည်-
- အဆင့်မသတ်မှတ်ထားသောအတွဲများ- {A၊ B}၊ {A၊ C}၊ {A၊ D}၊ {A၊ E}၊ {B၊ C}၊ {B၊ D}၊ {B၊ E}၊ {C၊ D } ၊ {C၊ E}၊ {D၊ E}
အတွဲ ၁၀ တွဲရှိပါတယ်။
ထို့နောက်၊ အစုလိုက်လုပ်နည်းနှစ်ခုလုံးတွင် တူညီသောအစုအဝေးမှ အတွဲလိုက်အရေအတွက်ကို ကိုယ်စားပြုသည့် အတွဲများကို တွက်ချက်ရန် လိုအပ်သည်-
- {AB}
ဒီနေရာမှာ a = 1 ပါ။
ထို့နောက်၊ အစုလိုက်နည်းလမ်းနှစ်ခုရှိ မတူညီသော အစုအဝေးများ ပိုင်ဆိုင်သည့် အတွဲများကို ကိုယ်စားပြုသည့် b ကို တွက်ချက်ရန် လိုအပ်သည်-
- {A၊ D}၊ {A၊ E}၊ {B၊ D}၊ {B၊ E}၊ {C၊ E}
ဒီနေရာမှာ b = 5 ပါ။
နောက်ဆုံးအနေနဲ့ Rand အညွှန်းကိန်းကို အောက်ပါအတိုင်း တွက်ချက်နိုင်ပါတယ်။
- R = (a+b) / ( n C 2 )
- R = (1+5)/10
- R = 6/10
Rand အညွှန်းကိန်းသည် 0.6 ဖြစ်သည်။
R တွင် Rand အညွှန်းကိန်းကိုဘယ်လိုတွက်ရမလဲ
R တွင် အစုလိုက် နည်းလမ်းနှစ်ခုကြားရှိ Rand အညွှန်းကိန်းကို တွက်ချက်ရန် ကျွန်ုပ်တို့သည် rand.index() လုပ်ဆောင်ချက်ကို အသုံးပြုနိုင်သည်။
library (fossil)
#define clusters
method1 <- c(1, 1, 1, 2, 2)
method2 <- c(1, 1, 2, 2, 3)
#calculate Rand index between clustering methods
rand. index (method1, method2)
[1] 0.6
Rand အညွှန်းကိန်းသည် 0.6 ဖြစ်သည်။ ၎င်းသည် ကျွန်ုပ်တို့ကိုယ်တိုင်တွက်ချက်ထားသော တန်ဖိုးနှင့် ကိုက်ညီပါသည်။
Python တွင် Rand Index ကို တွက်နည်း
အစုနှစ်ခုကြားရှိ Rand အညွှန်းကိန်းကို တွက်ချက်ရန် Python တွင် အောက်ပါလုပ်ဆောင်ချက်ကို ကျွန်ုပ်တို့ သတ်မှတ်နိုင်သည်-
import numpy as np from scipy. special import comb #define Rand index function def rand_index (actual, pred): tp_plus_fp = comb(np. bincount (actual), 2). sum () tp_plus_fn = comb(np. bincount (pred), 2). sum () A = np. c_ [(actual, pred)] tp = sum(comb( np.bincount (A[A[:, 0] == i, 1]), 2) .sum () for i in set(actual)) fp = tp_plus_fp - tp fn = tp_plus_fn - tp tn = comb(len(A), 2) - tp - fp - fn return (tp + tn) / (tp + fp + fn + tn) #calculate Rand index rand_index([1, 1, 1, 2, 2], [1, 1, 2, 2, 3]) 0.6
Rand အညွှန်းကိန်းသည် 0.6 ဖြစ်လာသည်။ ၎င်းသည် ယခင်နမူနာများတွင် တွက်ချက်ထားသော တန်ဖိုးနှင့် ကိုက်ညီသည်။
ထပ်လောင်းအရင်းအမြစ်များ
K-Means Clustering နိဒါန်း
K-Medoids အစုအဝေးကို မိတ်ဆက်ခြင်း။
hierarchical clustering အကြောင်း နိဒါန်း