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 () 

Python တွင် ROC မျဉ်းကွေးများစွာကို ကြံစည်ပါ။

အပြာလိုင်းသည် ထောက်ပံ့ပို့ဆောင်မှု ဆုတ်ယုတ်မှုပုံစံအတွက် 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 ရမှတ်ကောင်းတစ်ခုဟု အဘယ်အရာက သတ်မှတ်သနည်း။

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

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