Python တွင် auc (မျဉ်းကွေးအောက်တွင် ဧရိယာ) ကို တွက်ချက်နည်း
Logistic regression သည် response variable binary ဖြစ်သောအခါ regression model တစ်ခုနှင့် ကိုက်ညီရန် ကျွန်ုပ်တို့အသုံးပြုသည့် ကိန်းဂဏန်းဆိုင်ရာ နည်းလမ်းတစ်ခုဖြစ်သည်။
ထောက်ပံ့ပို့ဆောင်ရေး ဆုတ်ယုတ်မှုပုံစံသည် ဒေတာအစုံနှင့် မည်မျှကိုက်ညီကြောင်း အကဲဖြတ်ရန်၊ အောက်ပါ မက်ထရစ်နှစ်ခုကို ကြည့်နိုင်သည်-
- အာရုံခံစားနိုင်မှု- ရလဒ်အမှန်တကယ်အပြုသဘောဆောင်သောအခါတွင် လေ့လာမှုတစ်ခုအတွက် အပြုသဘောဆောင်သောရလဒ်ကို မော်ဒယ်က ခန့်မှန်းပေးသည့်ဖြစ်နိုင်ခြေ။ ၎င်းကို “စစ်မှန်သော အပြုသဘောနှုန်း” ဟုလည်း ခေါ်သည်။
- တိကျမှု- ရလဒ်အမှန်တကယ် အနုတ်လက္ခဏာဖြစ်သောအခါ စောင့်ကြည့်မှုတစ်ခုအတွက် အနုတ်ရလဒ်ကို မော်ဒယ်က ခန့်မှန်းသည့် ဖြစ်နိုင်ခြေ။ ၎င်းကို “စစ်မှန်သော အနုတ်လက္ခဏာနှုန်း” ဟုလည်း ခေါ်သည်။
ဤတိုင်းတာမှုနှစ်ခုကို မြင်ယောင်မြင်ယောင်ရန် နည်းလမ်းတစ်ခုမှာ “ လက်ခံသူလည်ပတ်မှုလက္ခဏာ” မျဉ်းကွေးကို ကိုယ်စားပြုသည့် ROC မျဉ်းကွေးကို ဖန်တီးရန်ဖြစ်သည်။
၎င်းသည် y-ဝင်ရိုးတစ်လျှောက်နှင့် x-ဝင်ရိုးတစ်လျှောက် အာရုံခံနိုင်စွမ်းကိုပြသသည့် ဂရပ်တစ်ခုဖြစ်သည်။
ဒေတာအမျိုးအစားခွဲရာတွင် ထောက်ပံ့ပို့ဆောင်ရေး ဆုတ်ယုတ်မှုပုံစံ၏ ထိရောက်မှုကို တွက်ချက်ရန် နည်းလမ်းတစ်ခုမှာ “ မျဉ်းကွေးအောက်တွင် ဧရိယာ” ကို ကိုယ်စားပြုသည့် AUC ကို တွက်ချက်ခြင်းဖြစ်သည်။
AUC က 1 နဲ့ ပိုနီးစပ်လေ၊ model က ပိုကောင်းပါတယ်။
အောက်ဖော်ပြပါ အဆင့်ဆင့် ဥပမာသည် Python ရှိ ထောက်ပံ့ပို့ဆောင်ရေး ဆုတ်ယုတ်မှုပုံစံအတွက် AUC ကို တွက်ချက်နည်းကို ပြသထားသည်။
အဆင့် 1- ပက်ကေ့ဂျ်များကို တင်သွင်းပါ။
ပထမဦးစွာ၊ Python တွင် ထောက်ပံ့ပို့ဆောင်ရေးဆုတ်ယုတ်မှုကို လုပ်ဆောင်ရန် လိုအပ်သော ပက်ကေ့ဂျ်များကို တင်သွင်းပါမည်။
import pandas as pd import numpy as np from sklearn. model_selection import train_test_split from sklearn. linear_model import LogisticRegression from sklearn import metrics
အဆင့် 2- ထောက်ပံ့ပို့ဆောင်ရေး ဆုတ်ယုတ်မှုပုံစံကို အံကိုက်လုပ်ပါ။
ထို့နောက်၊ ကျွန်ုပ်တို့သည် ဒေတာအတွဲတစ်ခုကို တင်သွင်းပြီး ၎င်းနှင့် ထောက်ပံ့ပို့ဆောင်ရေး ဆုတ်ယုတ်မှုပုံစံကို အံကိုက်လုပ်ပါမည်။
#import dataset from CSV file on Github
url = "https://raw.githubusercontent.com/Statorials/Python-Guides/main/default.csv"
data = pd. read_csv (url)
#define the predictor variables and the response variable
X = data[[' student ',' balance ',' income ']]
y = data[' default ']
#split the dataset into training (70%) and testing (30%) sets
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size= 0.3 ,random_state= 0 )
#instantiate the model
log_regression = LogisticRegression()
#fit the model using the training data
log_regression. fit (X_train,y_train)
အဆင့် 3- AUC ကို တွက်ချက်ပါ။
မော်ဒယ်၏ AUC ကို တွက်ချက်ရန် metrics.roc_auc_score() လုပ်ဆောင်ချက်ကို အသုံးပြုနိုင်ပါသည်။
#use model to predict probability that given y value is 1
y_pred_proba = log_regression. predict_proba (X_test)[::, 1 ]
#calculate AUC of model
auc = metrics. roc_auc_score (y_test, y_pred_proba)
#print AUC score
print (auc)
0.5602104030579559
ဤအထူးမော်ဒယ်အတွက် AUC (မျဉ်းကွေးအောက်ဧရိယာ) သည် 0.5602 ဖြစ်သည်။
AUC ရမှတ် 0.5 ရှိသော မော်ဒယ်သည် ကျပန်း ခန့်မှန်းချက်များကို ပြုလုပ်သည့် မော်ဒယ်ထက် ပိုကောင်းမည်မဟုတ်ကြောင်း သတိရပါ။
ထို့ကြောင့်၊ ကိစ္စအများစုတွင် AUC ရမှတ် 0.5602 ရှိသော မော်ဒယ်ကို မှန်ကန်သော အတန်းများအဖြစ် ခွဲခြားသတ်မှတ်ရာတွင် ညံ့ဖျင်းသည်ဟု ယူဆနိုင်သည်။
ထပ်လောင်းအရင်းအမြစ်များ
အောက်ဖော်ပြပါ သင်ခန်းစာများသည် ROC မျဉ်းကွေးများနှင့် AUC ရမှတ်များအကြောင်း နောက်ထပ်အချက်အလက်များကို ပေးဆောင်သည်-
ROC Curve (ဥပမာများနှင့်အတူ) အဓိပါယ်ဖွင့်နည်း
AUC ရမှတ်ကောင်းတစ်ခုဟု အဘယ်အရာက သတ်မှတ်သနည်း။