كيفية رسم منحنيات roc المتعددة في لغة بايثون (مع مثال)


تتمثل إحدى طرق تصور أداء نماذج التصنيف في التعلم الآلي في إنشاء منحنى ROC ، والذي يرمز إلى منحنى “خاصية تشغيل المستقبل”.

في كثير من الأحيان، قد ترغب في ملاءمة نماذج تصنيف متعددة لمجموعة بيانات واحدة وإنشاء منحنى ROC لكل نموذج لتصور النموذج الذي يحقق أفضل أداء على البيانات.

يوضح المثال التالي خطوة بخطوة كيفية رسم منحنيات ROC متعددة في بايثون.

الخطوة 1: استيراد الحزم اللازمة

أولاً، سنقوم باستيراد العديد من الحزم الضرورية إلى لغة بايثون:

 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: إنشاء بيانات وهمية

بعد ذلك، سنستخدم وظيفة make_classification() الخاصة بـ sklearn لإنشاء مجموعة بيانات مزيفة تحتوي على 1000 صف وأربعة متغيرات توقعية ومتغير استجابة ثنائي:

 #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

بعد ذلك، سنلائم نموذج الانحدار اللوجستي ثم نموذج التدرج المحسن للبيانات ونرسم منحنى 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 متعددة في بايثون

يُظهر الخط الأزرق منحنى ROC لنموذج الانحدار اللوجستي ويظهر الخط البرتقالي منحنى ROC لنموذج التدرج المعزز.

كلما اقترب منحنى ROC من الزاوية اليسرى العليا من المخطط، كلما كان النموذج قادرًا على تصنيف البيانات إلى فئات بشكل أفضل.

ولقياس ذلك، يمكننا حساب المساحة تحت المنحنى AUC، والتي تخبرنا بمقدار قطعة الأرض الموجودة تحت المنحنى.

كلما اقتربت AUC من 1، كان النموذج أفضل.

من الرسم البياني الخاص بنا، يمكننا رؤية مقاييس AUC التالية لكل نموذج:

  • AUC لنموذج الانحدار اللوجستي: 0.7902
  • AUC من نموذج التدرج المعزز: 0.9712

من الواضح أن النموذج المحسن التدرج أكثر نجاحًا في تصنيف البيانات إلى فئات من نموذج الانحدار اللوجستي.

مصادر إضافية

توفر البرامج التعليمية التالية معلومات إضافية حول نماذج التصنيف ومنحنيات ROC:

مقدمة في الانحدار اللوجستي
كيفية تفسير منحنى ROC (مع أمثلة)
ما الذي يعتبر درجة جيدة في الجامعة الأمريكية بالقاهرة؟

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *