كيفية إنشاء منحنى استدعاء الدقة في بايثون
عند استخدام نماذج التصنيف في التعلم الآلي، هناك مقياسان نستخدمهما غالبًا لتقييم جودة النموذج هما الدقة والتذكر.
الدقة : تصحيح التنبؤات الإيجابية مقارنة بإجمالي التوقعات الإيجابية.
ويتم حساب ذلك على النحو التالي:
- الدقة = الإيجابيات الحقيقية / (الإيجابيات الحقيقية + الإيجابيات الكاذبة)
تذكير : تصحيح التوقعات الإيجابية مقابل مجموع الإيجابيات الفعلية
ويتم حساب ذلك على النحو التالي:
- التذكير = الإيجابيات الحقيقية / (الإيجابيات الحقيقية + السلبيات الكاذبة)
لتصور دقة واستدعاء نموذج معين، يمكننا إنشاء منحنى استدعاء الدقة . يوضح هذا المنحنى المفاضلة بين الدقة والاستدعاء لعتبات مختلفة.
يوضح المثال التالي خطوة بخطوة كيفية إنشاء منحنى استدعاء دقيق لنموذج الانحدار اللوجستي في بايثون.
الخطوة 1: استيراد الحزم
أولاً، سنقوم باستيراد الحزم اللازمة:
from sklearn import datasets from sklearn. model_selection import train_test_split from sklearn. linear_model import LogisticRegression from sklearn. metrics import precision_recall_curve import matplotlib. pyplot as plt
الخطوة 2: ملاءمة نموذج الانحدار اللوجستي
بعد ذلك، سنقوم بإنشاء مجموعة بيانات ونلائم نموذج الانحدار اللوجستي لها:
#create dataset with 5 predictor variables
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 )
#fit logistic regression model to dataset
classifier = LogisticRegression()
classify. fit (X_train, y_train)
#use logistic regression model to make predictions
y_score = classify. predict_proba (X_test)[:, 1 ]
الخطوة 3: إنشاء منحنى الاسترجاع الدقيق
بعد ذلك، سوف نقوم بحساب دقة النموذج واسترجاعه وإنشاء منحنى استرجاع الدقة:
#calculate precision and recall
precision, recall, thresholds = precision_recall_curve(y_test, y_score)
#create precision recall curve
fig, ax = plt. subplots ()
ax. plot (recall, precision, color=' purple ')
#add axis labels to plot
ax. set_title (' Precision-Recall Curve ')
ax. set_ylabel (' Precision ')
ax. set_xlabel (' Recall ')
#displayplot
plt. show ()
يُظهر المحور السيني الاسترجاع بينما يُظهر المحور الصادي الدقة لعتبات مختلفة.
لاحظ أنه كلما زاد الاستدعاء، انخفضت الدقة.
وهذا يمثل الحل الوسط بين المقياسين. لزيادة استدعاء نموذجنا، يجب أن تنخفض الدقة والعكس صحيح.
مصادر إضافية
كيفية تنفيذ الانحدار اللوجستي في بايثون
كيفية إنشاء مصفوفة الارتباك في بايثون
كيفية تفسير منحنى ROC (مع أمثلة)