در این مطلب با استفاده از مثالهای ساده و کاربردی به شرح مختصر و مفید معیار شناختهشدهی ارزیابی نتایج داده کاوی مثل Accuracy - Recall - Precision و F1-score میپردازیم.
فرض کنید برنامهای را پیادهسازی کردیم که یک متن را به عنوان ورودی دریافت کرده و حدس میزند که آن جمله غیر رسمی است یا توهین آمیز.
جدول زیر شامل نتایج مورد انتظار و پیش بینی برنامه ما است.
# | دیتاست | اطلاعات ورودی | نتایج واقعی | نتایج پیش بینی سیستم |
---|---|---|---|---|
1 | اینستاگرام | x1 | غیر رسمی | غیر رسمی |
2 | اینستاگرام | x2 | توهین آمیز | - |
3 | اینستاگرام | x3 | غیر رسمی - توهین آمیز | غیر رسمی |
4 | توییتر | x4 | توهین آمیز | غیر رسمی |
5 | توییتر | x5 | - | توهین آمیز - غیر رسمی |
معیار accuracy یا صحت
شاید اولین و سادهترین معیاری باشد که ما سراغ آن میرویم معیار accuracy یا همان صحت است که برابر است با تعداد مواردی که درست پیش بینی کردیم که آن را True Positive مینامیم تقسیم بر تعداد کل پیش بینیهایی که انجام شدهاست.
به جدول زیر توجه کنید، ردیف True Positive نمایانگر تعداد پیش بینیهای درست است.
# | نتایج واقعی | نتایج پیش بینی سیستم | 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 است.
به جدول زیر توجه کنید.
# | نتایج واقعی | نتایج پیش بینی سیستم | True Positive | False Negative |
---|---|---|---|---|
1 | غیر رسمی | غیر رسمی | 1 (غیر رسمی) | 0 |
2 | توهین آمیز | - | 0 | 1 (توهین آمیز) |
3 | غیر رسمی - توهین آمیز | غیر رسمی | 1 (غیر رسمی) | 0 |
4 | توهین آمیز | غیر رسمی | 0 | 1 (توهین آمیز) |
5 | - | توهین آمیز - غیر رسمی | 0 | 0 |
با توجه به جدول بالا تعداد موارد پیش بینی نشده یا False Negative برابر 2 است و تعداد پیش بینیهای درست یا TP برابر 2 است و طبق فرمول مقدار Recall برابر 0.5 یا 50 درصد است.
معیار Precision یا دقت
حداکثر مقدار این معیار یک ویا ۱۰۰ درصد و حداقل مقدار آن صفر است و هرچه مواردی که برنامه به غلط پیش بینی کرده است که به آن False Positive میگوییم نسبت به پیش بینیهای درست یا True Positive بیشتر باشد مقدار Precision کمتر خواهد شد.
فرمول محاسبهی Precision
در فرمول زیر TP مخفف True Positive و FP مخفف False Positive است.
به جدول زیر توجه کنید.
# | نتایج واقعی | نتایج پیش بینی سیستم | True Positive | False Positive |
---|---|---|---|---|
1 | غیر رسمی | غیر رسمی | 1 (غیر رسمی) | 0 |
2 | توهین آمیز | - | 0 | 0 |
3 | غیر رسمی - توهین آمیز | غیر رسمی | 1 (غیر رسمی) | 1 (توهین آمیز) |
4 | توهین آمیز | غیر رسمی | 0 | 1 (غیر رسمی) |
5 | - | توهین آمیز - غیر رسمی | 0 | 2 (توهین آمیز - غیر رسمی) |
با توجه به جدول بالا تعداد موارد پیش بینی نشده یا False Negative برابر 4 است و تعداد پیش بینیهای درست یا TP برابر 2 است و طبق فرمول مقدار Recall حدودا برابر 0.33 یا 33 درصد است.
معیار f1-score
زمانی که میخواهید معیار ارزیابی شما میانگینی از دو مورد قبلی باشد یعنی همان Recall یا Precision میتوانید از میانگین هارمونیک این دو معیار استفاده کنید که به آن معیار f1-score میگویند.
مقدار 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 میگویند و با فرمولهای زیر محاسبه میشوند.
به جدول زیر توجه کنید.
# | دیتاست | نتایج واقعی | نتایج پیش بینی سیستم | True Positive | False Negative | False Positive |
---|---|---|---|---|---|---|
1 | اینستاگرام | غیر رسمی | غیر رسمی | 1 (غیر رسمی) | 0 | 0 |
2 | اینستاگرام | توهین آمیز | - | 0 | 1 | 0 |
3 | اینستاگرام | غیر رسمی - توهین آمیز | غیر رسمی | 1 (غیر رسمی) | 0 | 1 |
4 | توییتر | توهین آمیز | غیر رسمی | 0 | 1 | 1 |
5 | توییتر | - | توهین آمیز - غیر رسمی | 0 | 0 | 2 |
مقدار Recall برای دیتاست اینستاگرام حدودا برابر 0.66 و برای توییتر برابر 0 است و طبق فرمول بالا مقدار macro avg recall برابر 0.33 است.
مقدار Precision برای دیتاست اینستاگرام برابر 0.66 و برای توییتر برابر 0 است و طبق فرمول بالا مقدار macro avg precision برابر 0.33 است.