Python တွင် roc မျဉ်းကြောင်းများစွာကို မည်သို့ဆွဲမည်နည်း (ဥပမာဖြင့်)
စက်သင်ယူမှုတွင် အမျိုးအစားခွဲခြင်းဆိုင်ရာ မော်ဒယ် များ၏ စွမ်းဆောင်ရည်ကို မြင်သာစေရန် နည်းလမ်းတစ်ခုမှာ “ လက်ခံသူ၏ လည်ပတ်မှုလက္ခဏာ” မျဉ်းကွေးကို ကိုယ်စားပြုသည့် ROC မျဉ်းကွေးကို ဖန်တီးရန်ဖြစ်သည်။
မကြာခဏဆိုသလို၊ သင်သည် ဒေတာအတွဲတစ်ခုတည်းတွင် အမျိုးအစားခွဲခြားမှုပုံစံများစွာကို အံဝင်ခွင်ကျဖြစ်စေပြီး ဒေတာအတွက် အကောင်းဆုံးလုပ်ဆောင်နိုင်သည့်ပုံစံကို မြင်သာစေရန် မော်ဒယ်တစ်ခုစီအတွက် ROC မျဉ်းကွေးတစ်ခုကို ဖန်တီးပါ။
အောက်ဖော်ပြပါ အဆင့်ဆင့် ဥပမာသည် Python တွင် ROC မျဉ်းကွေးများစွာကို ပုံဖော်နည်းကို ပြသထားသည်။
အဆင့် 1- လိုအပ်သော ပက်ကေ့ခ်ျများကို တင်သွင်းပါ။
ပထမဦးစွာ ကျွန်ုပ်တို့သည် Python သို့ လိုအပ်သော ပက်ကေ့ဂျ်များစွာကို တင်သွင်းပါမည်။
from sklearn import metrics
from sklearn import datasets
from sklearn. model_selection import train_test_split
from sklearn. linear_model import LogisticRegression
from sklearn. set import GradientBoostingClassifier
import numpy as np
import matplotlib. pyplot as plt
အဆင့် 2: Fake Data ဖန်တီးပါ။
ထို့နောက်၊ ကျွန်ုပ်တို့သည် အတန်း 1000 တန်း၊ ကြိုတင်ခန့်မှန်းနိုင်သောကိန်းရှင် လေးခုနှင့် binary တုံ့ပြန်မှုကိန်းရှင်တစ်ခုပါရှိသော ဒေတာအတွဲအတုကို ဖန်တီးရန် sklearn ၏ make_classification() လုပ်ဆောင်ချက်ကို အသုံးပြုပါမည်။
#create fake dataset
X, y = datasets. make_classification (n_samples= 1000 ,
n_features= 4 ,
n_informative= 3 ,
n_redundant= 1 ,
random_state= 0 )
#split dataset into training and testing set
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size= .3 , random_state= 0 )
အဆင့် 3- မော်ဒယ်များစွာနှင့် ကွက်တိ ROC မျဉ်းကြောင်းများ ကိုက်ညီပါ။
ထို့နောက်၊ ကျွန်ုပ်တို့သည် ထောက်ပံ့ပို့ဆောင်ရေးဆိုင်ရာ ဆုတ်ယုတ်မှုပုံစံတစ်ခုနှင့် ဒေတာသို့ gradient-မြှင့်တင်ထားသော မော်ဒယ်ကို ဖြည့်သွင်းပြီး မော်ဒယ်တစ်ခုစီအတွက် ROC မျဉ်းကွေးကို တူညီသောကွက်လပ်တွင် ပုံဖော်ပါမည်။
#set up plotting area
plt. Figure (0). clf ()
#fit logistic regression model and plot ROC curve
model = LogisticRegression()
model. fit (X_train, y_train)
y_pred = model. predict_proba (X_test)[:, 1]
fpr, tpr, _ = metrics. roc_curve (y_test, y_pred)
auc = round(metrics. roc_auc_score (y_test, y_pred), 4)
plt. plot (fpr,tpr,label="Logistic Regression, AUC="+str(auc))
#fit gradient boosted model and plot ROC curve
model = GradientBoostingClassifier()
model. fit (X_train, y_train)
y_pred = model. predict_proba (X_test)[:, 1]
fpr, tpr, _ = metrics. roc_curve (y_test, y_pred)
auc = round(metrics. roc_auc_score (y_test, y_pred), 4)
plt. plot (fpr,tpr,label="Gradient Boosting, AUC="+str(auc))
#add legend
plt. legend ()

အပြာလိုင်းသည် ထောက်ပံ့ပို့ဆောင်မှု ဆုတ်ယုတ်မှုပုံစံအတွက် ROC မျဉ်းကွေးကို ပြသပြီး လိမ္မော်ရောင်မျဉ်းသည် gradient မြှင့်တင်ထားသော မော်ဒယ်အတွက် ROC မျဉ်းကွေးကို ပြသသည်။
ROC မျဉ်းကွေးသည် ကွက်ကွက်၏ ဘယ်ဘက်အပေါ်ထောင့်နှင့် ပိုမိုနီးကပ်လေလေ၊ မော်ဒယ်သည် အချက်အလက်များကို အမျိုးအစားများခွဲခြားနိုင်လေလေဖြစ်သည်။
၎င်းကို တွက်ချက်ရန်အတွက်၊ မျဉ်းကွေးအောက်ရှိ AUC – ဧရိယာ – ကွက်ကွက်၏ မျဉ်းကွေးအောက်တွင် ကျွန်ုပ်တို့ကို ပြောပြနိုင်သည်။
AUC က 1 နဲ့ ပိုနီးစပ်လေ၊ model က ပိုကောင်းပါတယ်။
ကျွန်ုပ်တို့၏ဇယားမှ၊ မော်ဒယ်တစ်ခုစီအတွက် အောက်ပါ AUC မက်ထရစ်များကို ကျွန်ုပ်တို့ မြင်တွေ့နိုင်သည်-
- ထောက်ပံ့ပို့ဆောင်ရေးဆုတ်ယုတ်မှုပုံစံ၏ AUC- 0.7902
- gradient မြှင့်တင်ထားသော မော်ဒယ်၏ AUC- 0.9712
သေချာသည်မှာ၊ gradient-မြှင့်တင်ထားသောမော်ဒယ်သည် logistic regression model ထက် data များကို အမျိုးအစားခွဲရာတွင် ပို၍အောင်မြင်ပါသည်။
ထပ်လောင်းအရင်းအမြစ်များ
အောက်ဖော်ပြပါ သင်ခန်းစာများသည် အမျိုးအစားခွဲခြင်းပုံစံများနှင့် ROC မျဉ်းကွေးများအကြောင်း နောက်ထပ်အချက်အလက်များကို ပေးဆောင်သည်-
Logistic Regression နိဒါန်း
ROC Curve (ဥပမာများနှင့်အတူ) အဓိပါယ်ဖွင့်နည်း
AUC ရမှတ်ကောင်းတစ်ခုဟု အဘယ်အရာက သတ်မှတ်သနည်း။