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 နှင့်နီးစပ်သောကြောင့်၊ ၎င်းသည် မော်ဒယ်သည် တစ်ဦးချင်းစီ၏ချေးငွေတွင် ပုံသေဖြစ်မဖြစ်ကို ကြိုတင်ခန့်မှန်းခြင်းအတွက် အလွန်ကောင်းမွန်သောအလုပ်ဖြစ်ကြောင်း ညွှန်ပြနေသည်။