ML Learning Hub
التقييممبتدئ

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

الدقة كذبة — تعلّم اختيار المقياس الصحيح للمشكلة الحقيقية

دليل شامل: الدقة والضبط والاستدعاء وF1 وROC-AUC ومصفوفة الالتباس والتحقق المتقاطع — واختيار المقياس الصحيح لمهمتك.

35 min
8 مخططات
6 المفاهيم المغطاة

المتطلبات الأساسية

Linear Regression

المفاهيم المغطاة

ROC-AUCF1 ScoreConfusion MatrixCross-validationPrecision-RecallTimeSeriesSplit

الصيغ الرئيسية

درجة F1

المتوسط التوافقي للدقة والاستدعاء — يعاقب الأداء السيئ في كلا الاتجاهين

AUC-ROC

احتمال أن يُرتَّب الإيجابي العشوائي أعلى من السلبي العشوائي — مستقل عن العتبة

MCC

معامل ارتباط ماثيوز — أفضل مقياس مفرد للبيانات غير المتوازنة

RMSE

جذر متوسط الخطأ المربع — يعاقب الأخطاء الكبيرة، بوحدات الهدف

درجة R²

نسبة التباين المُفسَّر؛ 1=مثالي، 0=يتنبأ بالمتوسط، <0=أسوأ من المتوسط

MAE

متوسط الخطأ المطلق — متين للشواذ، قابل للتفسير بوحدات الهدف

محاكاة تفاعلية

Loading visualization…
Loading visualization…

هندسة النموذج

Loading visualization…
🎯

عندما تقتل الدقة

motivation

تخيل التنبؤ بالسرطان (انتشار 0.1%). نموذج يتنبأ بـ'لا سرطان' للجميع يحقق دقة 99.9% — ويقتل المرضى. في اكتشاف الاحتيال (0.5% احتيال)، الدقة العالية بلا معنى. اختيار المقياس قرار تجاري ليس تقنياً. الخطأ فيه قد يعني نشر نموذج يُحسّن الهدف الخاطئ تماماً.

في 2021، كان خوارزمية التوظيف في أمازون بدقة 98.4% — لكنها تُميّز ضد المرأة بشكل منهجي لأن الدقة كانت المقياس الوحيد المُحسَّن.

💡

مصفوفة الالتباس كصورة كاملة

intuition

كل تنبؤ يقع في إحدى أربع فئات: إيجابي حقيقي (إيجابي صحيح)، إيجابي كاذب (تنبؤ إيجابي، فعلياً سلبي)، سلبي حقيقي (سلبي صحيح)، سلبي كاذب (تنبؤ سلبي، فعلياً إيجابي). FP = خطأ النوع الأول (إنذار كاذب). FN = خطأ النوع الثاني (تفويت). أيهما أكثر أهمية يعتمد كلياً على التطبيق.

منحنى ROC: تقييم مستقل عن العتبة

math

المصنف يُخرج نتيجة، ليس فقط تنبؤ ثنائي. منحنى ROC يُظهر جميع المقايضات الممكنة بمسح العتبة من 0 إلى 1: رسم TPR (الاستدعاء) مقابل FPR. AUC = 0.5 يعني التخمين العشوائي، AUC = 1.0 مثالي. للـAUC تفسير احتمالي جميل: P(نتيجة(إيجابي) > نتيجة(سلبي)).

معدلات الإيجابية الحقيقية والكاذبة
🔬

K-Fold الطبقي: الطريقة الصحيحة للتحقق

deepdive

التحقق بالاحتجاز يهدر البيانات ولديه تباين مرتفع. التحقق المتقاطع K-Fold يستخدم جميع البيانات. K-Fold الطبقي يضمن أن كل طية لها نفس توزيع الفئات. TimeSeriesSplit يمنع تسرب البيانات: البيانات المستقبلية لا تُعلم التنبؤات الماضية أبداً.

1

StratifiedKFold: يحافظ على نسب الفئات في كل طية

2

TimeSeriesSplit: جميع بيانات التدريب تأتي قبل بيانات التحقق زمنياً

3

GroupKFold: يضمن أن جميع عينات المجموعة (مريض، مستخدم) في نفس الطية

4

RepeatedStratifiedKFold: تكرار K-Fold N مرة ببذور عشوائية مختلفة → تقدير تباين أقل

</>

خط أنابيب التقييم الكامل

code
python34 lines
from sklearn.metrics import (
    classification_report, roc_auc_score, f1_score,
    average_precision_score, matthews_corrcoef,
    confusion_matrix
)
from sklearn.model_selection import StratifiedKFold, train_test_split
from sklearn.datasets import make_classification
from sklearn.ensemble import GradientBoostingClassifier
import numpy as np

class="tok-comment"># ── Sample data + model ────────────────────────────────────────────────
X, y = make_classification(n_samples=class="tok-num">1000, n_features=class="tok-num">10, random_state=class="tok-num">42)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=class="tok-num">0.2, random_state=class="tok-num">42)
model = GradientBoostingClassifier(n_estimators=class="tok-num">100, random_state=class="tok-num">42)

skf = StratifiedKFold(n_splits=class="tok-num">5, shuffle=True, random_state=class="tok-num">42)
oof_probs = np.zeros(len(y_train))

for fold, (tr_idx, val_idx) in enumerate(skf.split(X_train, y_train)):
    model.fit(X_train[tr_idx], y_train[tr_idx])
    oof_probs[val_idx] = model.predict_proba(X_train[val_idx])[:, class="tok-num">1]
    print(fclass="tok-str">"Fold {fold+class="tok-num">1} AUC: {roc_auc_score(y_train[val_idx], oof_probs[val_idx]):.4f}")

class="tok-comment"># Full OOF evaluation
print(fclass="tok-str">"\nOOF AUC: {roc_auc_score(y_train, oof_probs):.4f}")
print(fclass="tok-str">"OOF AUC-PR: {average_precision_score(y_train, oof_probs):.4f}")
print(fclass="tok-str">"MCC: {matthews_corrcoef(y_train, oof_probs > class="tok-num">0.5):.4f}")

class="tok-comment"># Optimal threshold by F1
thresholds = np.linspace(class="tok-num">0.01, class="tok-num">0.99, class="tok-num">200)
f1s = [f1_score(y_train, oof_probs > t) for t in thresholds]
best_threshold = thresholds[np.argmax(f1s)]
print(fclass="tok-str">"Optimal threshold: {best_threshold:.3f}, F1: {max(f1s):.4f}")
⚖️

مقاييس الانحدار: عندما لا يكفي MSE

comparison

التصنيف لديه الدقة وF1 وAUC. الانحدار لديه عائلة كاملة من المقاييس — كلٌّ منها حساس لأنواع مختلفة من الأخطاء. اختيار الخاطئ قد يُخفي إخفاقات كارثية في النموذج.

1

MAE (متوسط الخطأ المطلق): Σ|yᵢ−ŷᵢ|/n — متين للشواذ، بوحدات الهدف، سهل الفهم. أقل يعني أفضل.

2

MSE (متوسط الخطأ المربع): Σ(yᵢ−ŷᵢ)²/n — يعاقب الأخطاء الكبيرة بشدة. قابل للاشتقاق في كل مكان. أقل يعني أفضل.

3

RMSE: √MSE — بوحدات الهدف، يعاقب الأخطاء الكبيرة. المقياس الأكثر شيوعاً للانحدار في Kaggle.

4

R² (معامل التحديد): 1 − MSE/Var(y) — نسبة التباين المُفسَّر. 1=مثالي، 0=يتنبأ بالمتوسط، <0=أسوأ من المتوسط.

5

MAPE: Σ|yᵢ−ŷᵢ|/yᵢ/n — خطأ نسبي مئوي. سهل للأعمال. غير معرَّف عند yᵢ=0، متحيز للقيم الصغيرة.

6

RMSLE (RMSE اللوغاريتمي): √Σ(log(ŷ+1)−log(y+1))²/n — متين للشواذ، يعاقب التنبؤات المنخفضة. لبيانات العد.

7

خسارة هوبر: تربيعية للأخطاء الصغيرة، خطية للكبيرة — أفضل من MAE+MSE، متين وقابل للاشتقاق.

⚖️

مقاييس الترتيب والمعايرة

comparison

بعيداً عن دقة التنبؤ النقطي، يجب على النماذج أحياناً الترتيب بشكل صحيح (توصية، بحث) أو إنتاج احتمالات معايَرة جيداً (مخاطر طبية، تمويل).

1

Spearman ρ: ارتباط رتب بين المتنبَّأ والفعلي — يقيس العلاقة المتزايدة، ليس الحجم.

2

NDCG (مكسب تراكمي مُخصَّم مُعيَّر): أهمية متدرجة، مخصَّمة بالموضع. يُستخدم في البحث/التوصية.

3

المعايرة (ECE): خطأ المعايرة المتوقع — هل تتحقق التنبؤات بثقة 80% في 80% من الأوقات؟

4

درجة بريير: MSE على الاحتمالات للتصنيف الثنائي — أقل يعني أفضل. جيد للتنبؤات الاحتمالية.

5

Log-Loss (الإنتروبيا التقاطعية): −Σyᵢ·log(pᵢ)+(1−yᵢ)·log(1−pᵢ) — يعاقب بشدة التنبؤات الخاطئة الواثقة.

🔭

اختيار المقياس قرار أعمال

insight

قاعدة: اختر المقياس الذي يتطابق مع تكلفة الأخطاء في تطبيقك. RMSE لأسعار المنازل. MAE لأوقات التسليم. MAPE عندما يهم الخطأ النسبي. AUC عند تغير توازن الفئات. F1 عندما لكل من FP وFN تكاليف. MCC كأفضل مقياس مفرد للبيانات غير المتوازنة.

?اختبار المعرفة

يتم حفظ التقدم في متصفحك — لا حاجة لحساب.

تحتاج مهندس ذكاء اصطناعي أو عالم بيانات؟

أبني نماذج تعلم آلي مخصصة، ووكلاء ذكاء اصطناعي، ورؤية حاسوب، وأتمتة — من الفكرة إلى الإنتاج.