معیارهای ارزیابی دسته‌بندی

آموزش Accuracy، Precision، Recall و F1: فرمول‌ها، تفاوت‌ها و انتخاب معیار درست

فراتر از Accuracy

Accuracy ساده است: «چند درصد درست گفتم؟» ولی در داده نامتوازن فریب‌دهنده است!

مثال: اگر ۹۹٪ تراکنش‌ها عادی باشند، مدل احمقانه «همه عادی» ۹۹٪ دقت دارد ولی هیچ تقلبی را نمی‌گیرد!

۱. Precision (دقت مثبت)

از مواردی که «مثبت» گفتیم، چند درصد درست بود؟

Precision = TP / (TP + FP)

مهم وقتی: هزینه FP بالاست — فیلتر اسپم (ایمیل مهم نباید حذف شود)

۲. Recall (حساسیت)

از موارد مثبت واقعی، چند درصد را پیدا کردیم؟

Recall = TP / (TP + FN)

مهم وقتی: هزینه FN بالاست — تشخیص بیماری (هیچ بیماری نباید از دست برود)

۳. F1 Score

میانگین هارمونیک Precision و Recall — وقتی هر دو مهم‌اند:

F1 = 2 × (Precision × Recall) / (Precision + Recall)

میانگین هارمونیک یعنی اگر یکی ضعیف باشد، F1 هم پایین می‌آید.

جدول انتخاب معیار

مسئلهمعیار اصلیدلیل
تشخیص بیماریRecallبیمار جا نماند
فیلتر اسپمPrecisionایمیل مهم حذف نشود
دسته‌بندی متوازنAccuracyکلاس‌ها برابرند
داده نامتوازن عمومیF1تعادل هر دو

پیاده‌سازی

from sklearn.metrics import (
    accuracy_score, precision_score, recall_score, f1_score
)

print(accuracy_score(y_test, y_pred))
print(precision_score(y_test, y_pred))
print(recall_score(y_test, y_pred))
print(f1_score(y_test, y_pred))
Precision و Recall کشش معکوس دارند: آستانه را سخت‌گیرانه کنید Precision بالا و Recall پایین می‌رود. نقطه تعادل به هزینه خطاهایتان بستگی دارد.

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل ماشین لرنینگ است.

ابزارهای مرتبط