R ဖြင့် auc (မျဉ်းကွေးအောက်တွင် ဧရိယာ) ကို တွက်နည်း


Logistic regression သည် response variable binary ဖြစ်သောအခါ regression model တစ်ခုနှင့် ကိုက်ညီရန် ကျွန်ုပ်တို့အသုံးပြုသည့် ကိန်းဂဏန်းဆိုင်ရာ နည်းလမ်းတစ်ခုဖြစ်သည်။ ထောက်ပံ့ပို့ဆောင်ရေး ဆုတ်ယုတ်မှုပုံစံသည် ဒေတာအစုံနှင့် မည်မျှကိုက်ညီကြောင်း အကဲဖြတ်ရန်၊ အောက်ပါ မက်ထရစ်နှစ်ခုကို ကြည့်နိုင်သည်-

  • အာရုံခံစားနိုင်မှု- ရလဒ်အမှန်တကယ်အပြုသဘောဆောင်သောအခါတွင် လေ့လာမှုတစ်ခုအတွက် အပြုသဘောဆောင်သောရလဒ်ကို မော်ဒယ်က ခန့်မှန်းပေးသည့်ဖြစ်နိုင်ခြေ။ ၎င်းကို “စစ်မှန်သော အပြုသဘောနှုန်း” ဟုလည်း ခေါ်သည်။
  • တိကျမှု- ရလဒ်အမှန်တကယ် အနုတ်လက္ခဏာဖြစ်သောအခါ စောင့်ကြည့်မှုတစ်ခုအတွက် အနုတ်ရလဒ်ကို မော်ဒယ်က ခန့်မှန်းသည့် ဖြစ်နိုင်ခြေ။ ၎င်းကို “စစ်မှန်သော အနုတ်လက္ခဏာနှုန်း” ဟုလည်း ခေါ်သည်။

ဤတိုင်းတာမှုနှစ်ခုကို မြင်ယောင်မြင်ယောင်ရန် နည်းလမ်းတစ်ခုမှာ “ လက်ခံသူလည်ပတ်မှုလက္ခဏာ” မျဉ်းကွေးကို ကိုယ်စားပြုသည့် ROC မျဉ်းကွေးကို ဖန်တီးရန်ဖြစ်သည်။

၎င်းသည် y-ဝင်ရိုးတစ်လျှောက်နှင့် x-ဝင်ရိုးတစ်လျှောက် အာရုံခံနိုင်စွမ်းကိုပြသသည့် ဂရပ်တစ်ခုဖြစ်သည်။ ဒေတာအမျိုးအစားခွဲရာတွင် ထောက်ပံ့ပို့ဆောင်ရေးဆုတ်ယုတ်မှုပုံစံ၏ ထိရောက်မှုကို တွက်ချက်ရန် နည်းလမ်းတစ်ခုမှာ “ မျဉ်းကွေးအောက်ရှိ ဧရိယာ” ကို ကိုယ်စားပြုသည့် AUC ကို တွက်ချက်ခြင်းဖြစ်သည်။

AUC က 1 နဲ့ ပိုနီးစပ်လေ၊ model က ပိုကောင်းပါတယ်။

အောက်ဖော်ပြပါ အဆင့်ဆင့် ဥပမာသည် R တွင် ထောက်ပံ့ပို့ဆောင်ရေး ဆုတ်ယုတ်မှုပုံစံအတွက် AUC ကို တွက်ချက်နည်းကို ပြသထားသည်။

အဆင့် 1: ဒေတာကို တင်ပါ။

ပထမဦးစွာ၊ လူအမျိုးမျိုးသည် ချေးငွေတွင် ပုံသေရှိ/မရှိနှင့်ပတ်သက်သော အချက်အလက်များပါရှိသော ISLR ပက်ကေ့ခ်ျမှ မူရင်း ဒေတာအစုံကို ကျွန်ုပ်တို့ တင်ပါမည်။

 #load dataset
data <- ISLR::Default

#view first six rows of dataset
head(data)

  default student balance income
1 No No 729.5265 44361.625
2 No Yes 817.1804 12106.135
3 No No 1073.5492 31767.139
4 No No 529.2506 35704.494
5 No No 785.6559 38463.496
6 No Yes 919.5885 7491.559

အဆင့် 2- ထောက်ပံ့ပို့ဆောင်ရေး ဆုတ်ယုတ်မှုပုံစံကို အံကိုက်လုပ်ပါ။

ထို့နောက်၊ လူတစ်ဦးချင်းစီ၏ ပုံသေဖြစ်နိုင်ခြေကို ခန့်မှန်းရန် ထောက်ပံ့ပို့ဆောင်ရေးဆိုင်ရာ ဆုတ်ယုတ်မှုပုံစံကို ကျွန်ုပ်တို့ အံဝင်ခွင်ကျဖြစ်စေပါမည်-

 #make this example reproducible
set. seeds (1)

#Use 70% of dataset as training set and remaining 30% as testing set
sample <- sample(c(TRUE, FALSE), nrow(data), replace= TRUE , prob=c(0.7,0.3))
train <- data[sample, ]
test <- data[!sample, ] 

#fit logistic regression model
model <- glm(default~student+balance+income, family=" binomial ", data=train)

အဆင့် 3- မော်ဒယ် AUC ကို တွက်ချက်ပါ။

ထို့နောက်၊ မော်ဒယ်၏ AUC ကိုတွက်ချက်ရန် pROC ပက်ကေ့ခ်ျမှ auc() လုပ်ဆောင်ချက်ကို အသုံးပြုပါမည်။ ဤလုပ်ဆောင်ချက်သည် အောက်ပါ syntax ကိုအသုံးပြုသည်-

အဘယ်သူမျှမ (တုံ့ပြန်မှု၊ ခန့်မှန်းချက်)

ကျွန်ုပ်တို့၏ဥပမာတွင် ဤလုပ်ဆောင်ချက်ကို အသုံးပြုနည်းမှာ အောက်ပါအတိုင်းဖြစ်သည်-

 #calculate probability of default for each individual in test dataset
predicted <- predict(model, test, type=" response ")

#calculate AUC
library (pROC)
auc(test$default, predicted)

Setting levels: control = No, case = Yes
Setting direction: controls < boxes
Area under the curve: 0.9437

မော်ဒယ်၏ AUC သည် 0.9437 ဖြစ်လာသည်။

ဤတန်ဖိုးသည် 1 နှင့်နီးစပ်သောကြောင့်၊ ၎င်းသည် မော်ဒယ်သည် တစ်ဦးချင်းစီ၏ချေးငွေတွင် ပုံသေဖြစ်မဖြစ်ကို ကြိုတင်ခန့်မှန်းခြင်းအတွက် အလွန်ကောင်းမွန်သောအလုပ်ဖြစ်ကြောင်း ညွှန်ပြနေသည်။

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

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