93- كورس برمجة Machine Learning بلغة البايثون Python شرح – AUC – ROC Curve

شرح منحنى AUC – ROC في بايثون

مقدمة إلى منحنى AUC – ROC

منحنى AUC-ROC هو أداة مهمة في تقييم أداء نماذج التصنيف الثنائية. حيث يمثل ROC (Receiver Operating Characteristic) العلاقة بين الحساسية (True Positive Rate) والمعدل الخاطئ للإيجابيات (False Positive Rate) عبر مختلف العتبات. ويقدم AUC (Area Under the Curve) مقياساً لمدى قدرة النموذج على التمييز بين الفئات. إذا كانت قيمة AUC تساوي 1، فهذا يعني أن النموذج مثالي. وإذا كانت تساوي 0.5، فإن أداء النموذج لا يختلف عن التنبؤ العشوائي.

تطبيق منحنى AUC – ROC باستخدام بايثون

من أجل تطبيق منحنى AUC – ROC، سنستخدم مكتبة scikit-learn الشهيرة في بايثون. إليك مثال يوضح كيفية حساب ورسم هذا المنحنى باستخدام بيانات اصطناعية:


from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt

# إنشاء بيانات تصنيفية
X, y = make_classification(n_samples=1000, n_features=20, n_classes=2, random_state=42)

# تقسيم البيانات إلى مجموعة تدريب واختبار
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# إنشاء وتدريب النموذج
model = RandomForestClassifier()
model.fit(X_train, y_train)

# حساب التنبؤات لاحتمالات الفئة الإيجابية
y_probs = model.predict_proba(X_test)[:, 1]

# حساب قيم ROC
fpr, tpr, thresholds = roc_curve(y_test, y_probs)

# حساب AUC
roc_auc = auc(fpr, tpr)

# رسم منحنى ROC
plt.figure()
plt.plot(fpr, tpr, color='blue', lw=2, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], color='red', linestyle='--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.0])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic')
plt.legend(loc="lower right")
plt.show()

أهمية منحنى AUC – ROC

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