كيفية حساب auc (المساحة تحت المنحنى) في بايثون
الانحدار اللوجستي هو طريقة إحصائية نستخدمها لتناسب نموذج الانحدار عندما يكون متغير الاستجابة ثنائيًا.
لتقييم مدى ملاءمة نموذج الانحدار اللوجستي لمجموعة البيانات، يمكننا النظر إلى المقياسين التاليين:
- الحساسية: احتمال أن يتنبأ النموذج بنتيجة إيجابية لملاحظة ما عندما تكون النتيجة إيجابية بالفعل. ويسمى هذا أيضًا “المعدل الإيجابي الحقيقي”.
- الخصوصية: احتمال أن يتنبأ النموذج بنتيجة سلبية لملاحظة ما عندما تكون النتيجة سلبية بالفعل. ويسمى هذا أيضًا “المعدل السلبي الحقيقي”.
إحدى الطرق لتصور هذين القياسين هي إنشاء منحنى ROC ، والذي يرمز إلى منحنى “خاصية تشغيل جهاز الاستقبال”.
هذا رسم بياني يعرض الحساسية على طول المحور y و(1 – الخصوصية) على طول المحور x.
إحدى طرق قياس فعالية نموذج الانحدار اللوجستي في تصنيف البيانات هي حساب AUC ، والتي تعني “المنطقة تحت المنحنى”.
كلما اقتربت AUC من 1، كان النموذج أفضل.
يوضح المثال التالي خطوة بخطوة كيفية حساب المساحة تحت المنحة (AUC) لنموذج الانحدار اللوجستي في بايثون.
الخطوة 1: استيراد الحزم
أولاً، سنقوم باستيراد الحزم اللازمة لإجراء الانحدار اللوجستي في بايثون:
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: حساب الجامعة الأمريكية بالقاهرة
يمكننا استخدام الدالة metrics.roc_auc_score() لحساب AUC للنموذج:
#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 (مع أمثلة)
ما الذي يعتبر درجة جيدة في الجامعة الأمريكية بالقاهرة؟