معیارهای ارزیابی Accuracy - Recall - Precision و F1-score

۲ شهریور ۱۳۹۹

در این مطلب با استفاده از مثال‌های ساده و کاربردی به شرح مختصر و مفید معیار شناخته‌شده‌ی ارزیابی نتایج داده کاوی مثل Accuracy - Recall - Precision و F1-score می‌پردازیم.

Photo by

Clem Onojeghuo

on

Unsplash

فرض کنید برنامه‌ای را پیاده‌سازی کردیم که یک متن را به عنوان ورودی دریافت کرده و حدس می‌زند که آن جمله غیر رسمی است یا توهین آمیز.


جدول زیر شامل نتایج مورد انتظار و پیش بینی برنامه ما است.

#دیتاستاطلاعات ورودینتایج واقعینتایج پیش بینی سیستم
1اینستاگرامx1غیر رسمیغیر رسمی
2اینستاگرامx2توهین آمیز-
3اینستاگرامx3غیر رسمی - توهین آمیزغیر رسمی
4توییترx4توهین آمیزغیر رسمی
5توییترx5-توهین آمیز - غیر رسمی

 

معیار accuracy یا صحت

شاید اولین و ساده‌ترین معیاری باشد که ما سراغ آن می‌رویم معیار accuracy یا همان

صحت

است که برابر است با تعداد مواردی که درست پیش بینی کردیم که آن را True Positive می‌نامیم تقسیم بر تعداد کل پیش بینی‌هایی که انجام شده‌است.


به جدول زیر توجه کنید، ردیف True Positive نمایانگر تعداد پیش بینی‌های درست است.

Accuracy=TP+TNTP+TN+FP+FNAccuracy = \frac{TP+TN}{TP + TN + FP + FN}
#نتایج واقعینتایج پیش بینی سیستمTrue Positive
1غیر رسمیغیر رسمی1 (غیر رسمی)
2توهین آمیز-0
3غیر رسمی - توهین آمیزغیر رسمی1 (غیر رسمی)
4توهین آمیزغیر رسمی0
5-توهین آمیز - غیر رسمی0

با توجه به جدول بالا تعداد پیش بینی‌های درست ما ۲ و تعداد کل موارد بررسی شده ۵ می‌باشد و

صحت

برنامه‌ی ما برابر ۰.۴ یا همان ۴۰ درصد است.

معیار Recall یا یادآوری

حداکثر مقدار این معیار یک ویا ۱۰۰ درصد و حداقل مقدار آن صفر است و هرچه مواردی که ما انتظار داشتیم پیش بینی شوند ولی برنامه پیش بینی نکرده‌است که به آن False Negative می‌گوییم نسبت به پیش بینی‌های درست یا True Positive بیشتر باشد مقدار Recall کمتر خواهد شد.

فرمول محاسبه‌ی Recall

در فرمول‌ زیر TP مخفف True Positive و FN مخفف False Negative است.

Recall=TPTP+FNRecall = \frac{TP}{TP + FN} به جدول زیر توجه کنید.
#نتایج واقعینتایج پیش بینی سیستمTrue PositiveFalse Negative
1غیر رسمیغیر رسمی1 (غیر رسمی)0
2توهین آمیز-01 (توهین آمیز)
3غیر رسمی - توهین آمیزغیر رسمی1 (غیر رسمی)0
4توهین آمیزغیر رسمی01 (توهین آمیز)
5-توهین آمیز - غیر رسمی00

با توجه به جدول بالا تعداد موارد پیش بینی نشده یا False Negative برابر 2 است و تعداد پیش بینی‌های درست یا TP برابر 2 است و طبق فرمول مقدار Recall برابر 0.5 یا 50 درصد است.

معیار

Precision

یا دقت

حداکثر مقدار این معیار یک ویا ۱۰۰ درصد و حداقل مقدار آن صفر است و هرچه مواردی که برنامه‌ به غلط پیش بینی کرده است که به آن False Positive می‌گوییم نسبت به پیش بینی‌های درست یا True Positive بیشتر باشد مقدار

Precision 

کمتر خواهد شد.

فرمول محاسبه‌ی Precision

در فرمول‌ زیر TP مخفف True Positive و FP مخفف False Positive است.

Precision=TPTP+FPPrecision = \frac { TP } { TP + FP } به جدول زیر توجه کنید.
#نتایج واقعینتایج پیش بینی سیستمTrue PositiveFalse Positive
1غیر رسمیغیر رسمی1 (غیر رسمی)0
2توهین آمیز-00
3غیر رسمی - توهین آمیزغیر رسمی1 (غیر رسمی)1 (توهین آمیز)
4توهین آمیزغیر رسمی01 (غیر رسمی)
5-توهین آمیز - غیر رسمی02 (توهین آمیز - غیر رسمی)

با توجه به جدول بالا تعداد موارد پیش بینی نشده یا False Negative برابر 4 است و تعداد پیش بینی‌های درست یا TP برابر 2 است و طبق فرمول مقدار Recall حدودا برابر 0.33 یا 33 درصد است.

معیار f1-score

زمانی که می‌خواهید معیار ارزیابی شما میانگینی از دو مورد قبلی باشد یعنی همان Recall یا Precision می‌توانید از میانگین هارمونیک این دو معیار استفاده کنید که به آن معیار f1-score می‌گویند.

F1=21Recall1Precision=2PrecisionRecallPrecision+RecallF1 = \frac{2}{\frac{1}{Recall} \cdot \frac{1}{Precision}} = 2 \cdot \frac { Precision \cdot Recall } { Precision + Recall }

مقدار Recall به دست آمده برابر 50 و Precision برابر 33 درصد است و طبق فرمول مقدار f1-score حدودا برابر 39.75 درصد خواهد شد.

معیار Micro Avg و Macro Avg

محاسبه‌ی Micro Avg برای Recall و Precision برابر است مقادیری که تا بحال برای محاسبه‌ی Recall و Precision بدست آوردیم. نکته‌ای که در این روش وجود داشت این بوده که هر یک از داده‌ها و نتایج مستقل از این که در کدام مجموعه داده هستن (در مثال ما دو دیتاست اینستاگرام و توییتر وجود دارد) روی نتیجه‌ی نهایی تاثیر می‌گذارند برای جلوگیری از آن می‌توان میزان Recall یا Precision هر دیتاست را جدا گانه حساب کرد و درنهایت میانگین آن را به دست آورد که به آن Macro Avg Recall یا Macro Avg Precision می‌گویند و با فرمول‌های زیر محاسبه می‌شوند.

MacroAverage Recall=i=1nRecallin\mathrm{Macro Average\ Recall}=\frac{\sum_{i=1}^{n}Recall_i}{n} MacroAverage Precision=i=1nPrecisionin\mathrm{Macro Average\ Precision}=\frac{\sum_{i=1}^{n}Precision_i}{n} به جدول زیر توجه کنید.
#دیتاستنتایج واقعینتایج پیش بینی سیستمTrue PositiveFalse NegativeFalse Positive
1اینستاگرامغیر رسمیغیر رسمی1 (غیر رسمی)00
2اینستاگرامتوهین آمیز-010
3اینستاگرامغیر رسمی - توهین آمیزغیر رسمی1 (غیر رسمی)01
4توییترتوهین آمیزغیر رسمی011
5توییتر-توهین آمیز - غیر رسمی002

مقدار Recall برای دیتاست اینستاگرام حدودا برابر 0.66 و برای توییتر برابر 0 است و طبق فرمول بالا مقدار macro avg recall برابر 0.33 است.

مقدار Precision برای دیتاست اینستاگرام برابر 0.66 و برای توییتر برابر 0 است و طبق فرمول بالا مقدار macro avg precision برابر 0.33 است.

فهرست مطالب « روش‌های ارزیابی »

Berneti