الأخبار التكنولوجية والاستعراضات والنصائح!

ROC و AUC لتقييم النموذج – نحو الذكاء الاصطناعي

ستساعدك المقالة التالية: ROC و AUC لتقييم النموذج – نحو الذكاء الاصطناعي

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

تقييم النموذج

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

لفهم منحنى ROC ، دعنا نجدد ذاكرتنا بسرعة حول النتائج المحتملة في مشكلة التصنيف الثنائي بالرجوع إلى مصفوفة الارتباك.

منحنى ROC عبارة عن قطعة من المعدل الإيجابي الحقيقي (TPR) تآمر ضد المعدل الإيجابي الكاذب (FPR) بقيم حدية مختلفة. يساعد على تصور كيفية تأثير العتبة على أداء المصنف.

المعدل الإيجابي الحقيقي (TPR) يشير إلى نسبة الأمثلة لفئة معينة التي تنبأ بها النموذج على أنها تنتمي إلى تلك الفئة. يشار إليه أيضًا باسم يتذكر أو حساسية.

حيث يكون TP و FN موجبين حقيقيين وسالب خطأ كاذب ، على التوالي.

المعدل الإيجابي الكاذب (FPR): هو احتمال أن يكون اختبار الشخص إيجابيًا وليس مصابًا بمرض. يشار إليه أيضًا باسم معدل السقوط.

حيث FP هو عدد False Positives و TN هو عدد True Negatives.

منحنى ROC يمكن تعريفها أيضًا على أنها الحساسية مقابل 1-الخصوصية حبكة.

دعونا نلقي نظرة على منحنى ROC للتصنيف الثنائي.

من sklearn.datasets استيراد make_classification
من sklearn.model_selection استيراد train_test_split
من sklearn.linear_model استيراد LogisticRegression
من sklearn.metrics استيراد roc_curve
من sklearn.metrics استيراد RocCurveDisplay
X ، y = make_classification (n_samples = 500 ، n_classes = 2 ،
عشوائية = 1)
X_train ، X_test ، y_train ، y_test = train_test_split (X ، y ،
test_size = .2 ،
عشوائية = 2)
lr = LogisticRegression ()
lr.fit (X_train ، y_train)
y_pred = lr.predict (X_test)
y_pred_prob = lr.predict_proba (X_test)
y_pred_prob = y_pred_prob[:,1]
fpr ، tpr ، عتبة = roc_curve (y_test ، y_pred_prob)
plt = RocCurveDisplay (fpr = fpr ، tpr = tpr)
plt.plot ()

نقاط الجامعة الأمريكية بالقاهرة

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

كلما زادت AUC ، كان المصنف أفضل. تقلبت قيمته بين 0 (أسوأ نموذج) و 1 (نموذج مثالي).

من sklearn.metrics استيراد roc_auc_score
auc = roc_auc_score (y_test ، y_pred_prob)
طباعة (auc)
انتاج:
0.9727017262143718

دعونا نلقي نظرة على كيفية رسم منحنى ROC وحساب نقاط AUC على مجموعة بيانات تصنيف عشوائية باستخدام مكتبة sklearn.

plt = RocCurveDisplay (fpr = fpr، tpr = tpr، roc_auc = auc)
plt.plot ()

لماذا منحنى ROC؟

يتم حساب ROC بناءً على درجة الدقة ، بينما تنظر العديد من المقاييس مثل الدقة والدقة إلى فئة التنبؤ. إنها مقايضة بين الحساسية (TPR) و 1-الخصوصية (FPR) ، السماح للشخص باختيار عتبة تحافظ على التوازن بين TPR و FPR ، والتي تناسب المشكلة المعينة.

يعد رسم منحنى ROC بمثابة نزهة للمشكلات الثنائية. ومع ذلك ، يصعب على المحترفين حساب التصنيف متعدد الفئات. فيما يلي طريقة رسم ROC و AUC لفئات متعددة.

من sklearn.datasets استيراد make_classification
من sklearn.preprocessing استيراد label_binarize
من sklearn.model_selection استيراد train_test_split
من sklearn.linear_model استيراد LogisticRegression
من sklearn.multiclass استيراد OneVsRestClassifier # تحميل مجموعة البيانات
X ، y = make_classification (n_samples = 500 ، n_classes = 3 ،
الحالة العشوائية = 1 ، n_informative = 3)
y = label_binarize (y ، فئات =[0,1,2])
X_train ، X_test ، y_train ، y_test = train_test_split (X ، y ،
test_size = .5 ،
عشوائية = 1)
lr = LogisticRegression ()
ovr = OneVsRestClassifier (lr)
ovr.fit (X_train ، y_train)
y_pred = توقع ovr (X_test)
y_pred_prob = ovr.predict_proba (X_test)
fpr ، tpr ، عتبة ، auc ، ملصقات = roc_auc_curve (y_test ،
y_pred_prob ،
تسميات =[0,1,2])
roc_auc_curve_plot (fpr ، tpr ، عتبة ، auc ، تسميات)

مراجع:

[1] منحنى ROC. https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html

[2] الجامعة الأمريكية بالقاهرة. https://scikit-learn.org/stable/modules/generated/sklearn.metrics.auc.html

[3] منحنى الاستدعاء الدقيق. https://pub.towardsai.net/precision-recall-curve-26f9e7984add


نُشر ROC و AUC for Model Evaluation في الأصل في Towards AI on Medium ، حيث يواصل الأشخاص المحادثة من خلال تسليط الضوء على هذه القصة والرد عليها.

تم النشر عبر نحو الذكاء الاصطناعي