در درس گذشته با ماتریس اغتشاش (Confusion Matrix) و معیار دقت (Accuracy) آشنا شدیم. دیدیم که با استفاده از یک مجموعهی آزمون، میتوانیم دقتِ الگوریتم را از روی ماتریس اغتشاش، به سادگی محاسبه کنیم. اما آیا این دقت، معیاری خوبی برای ارزیابی یک الگوریتم بود؟
ماتریس اغتشاش و مثال درس قبل را به یاد بیاورید:
در این مثال مشاهده کردید که ما از میان ۱۰۰ نفر که در مجموعهی آزمون داشتیم، ۸۶ نفر را به درستی بیمار تشخیص دادیم و ۱۴ نفر را به اشتباه سالم تشخیص دادیم. در واقع معیار دقت (Accuracy) برابر با ۸۶ درصد شد. اما معیار دقت (Accuracy) یک نقطهی ضعف دارد، و آن این است که این معیار، نمیتواند تفاوتی بین خطای False Negative و خطای False Positive داشته باشد. در واقع این معیار، تمامی خطاها را یکسان در نظر میگیرد. فرض کنید در همین مثال بالا که از درس قبل آوردیم، تعداد خطاهای FN برابر با ۱۰ و تعداد خطاهای FP برابر با ۴ بود (برعکس تصویر بالا). احتمالاً متوجه شدید که معیار دقت (Accuracy) باز هم همان ۸۶ درصد باقی میماند و تفاوتی با حالت قبل نمیکرد.
برای غلبه بر این مشکل دو معیار دیگر معرفی شده است که یکی از آنها معیار صحت (Precision) بوده که فرمول آن به صورت زیر است:
اگر با دقت به فرمول نگاه کرده باشید، متوجه میشوید که تمرکز اصلی این معیار، بر روی درستیِ تشخیصهای «بلی» توسط الگوریتم است. در واقع معیار صحت (Precision) معیاری است که به ما میگوید الگوریتم چند درصدِ «بلی»هایش درست بوده. برای فهم بیشتر، ماتریس اغتشاش بالاتر را نگاه کنید. در این مثال که از درس قبلی آوردیم، الگوریتم، تعداد ۸۱ نفر را بیمار تشخیص داده است (۷۱ + ۱۰). که از این تعداد فقط ۷۱ نفرِ آنها واقعاً بیمار بودهاند. پس در واقع معیار صحت برای مثال بالا برابر ۷۱/۸۱ یا ۸۷درصد است. به این معنا که اگر الگوریتم، شخصی را بیمار تشخیص داد، این تشخیص به احتمال ۸۷ درصد درست است.
اما معیارِ کاربردیِ دیگری به نام پوشش (Recall) نیز وجود دارد و همانطور که از نامش پیداست، به دنبال محاسبهی پوشش بر روی کل دادههاست. فرمول این معیار به صورت زیر است:
همانطور که مشاهده میکنید، تمرکز اصلی معیار پوشش (Recall) بر خلاف معیار صحت (Precision) بر روی دادههایی است که واقعاً «بلی» بودهاند. برای مثال در اینجا معیار پوشش به دنبال تعیین دقت الگوریتم، برای نمونههایی است که واقعاً بیمار بودهاند. اگر به ماتریس اغتشاش بالا نگاه کنید، تعداد ۷۵ نفر، واقعاً بیمار بودهاند که از این تعداد، ۷۱ نفر به درستی بیمار تشخیص داده شدهاند و ۴ نفر به اشتباه، سالم تشخیص داده شدهاند. پس معیار پوشش به دنبال یافتن پوششِ بلی در میان دادههاست. در همین مثال بالا، معیار پوشش، به دنبال پوششِ حداکثری بیماران است به گونهای که هیچ بیماری (که واقعاً بیماری دارد) به اشتباه سالم تشخیص داده نشود.
در برخی از مسائل، معیار پوشش (Recall) مهمتر از معیار صحت (Precision) میشود. فرض کنید در همین مثال بالا، بیماران ما دارای بیماری کوید-۱۹ باشند. اگر الگوریتم یک شخصی را که واقعا بیمار نیست، به اشتباه بیمار تشخیص دهد، میتوان به صورت محتاطانه، این شخص را قرنطینه کرد. با اینکه میدانیم معیار صحت (Precision) خیلی بالایی نداشتهایم و ممکن است تشخیص ما در بیمار دانستنِ این شخص اشتباه باشد. اما حالا فرض کنید شخص واقعا بیمار باشد و ما به اشتباه او را سالم تشخیص دهیم (پوشش پایین). در اینجا این شخص میتواند صدمهی زیادی به جامعه برساند. پس در همچین مثالی، ما به دنبال بالا بردنِ هر چه بیشترِ معیار پوشش (Recall) هستیم و میتوانیم در مورد معیار صحت کمی اغماض نشان دهیم. جالب است بدانید به معیار پوشش (Recall)، معیار حساسیت (Sensitivity) نیز گفته میشود.
معیار سومی به اسم معیار F1 هم وجود دارد که در واقع ترکیبی از معیارهای دقت و صحت است و به صورت زیر فرموله میشود:
معیار F1 که در واقع ترکیب متعادلی بین معیارهای دقت و صحت است، میتواند در مواردی که هزینهی False Positive و False Negative متفاوت است به کار رود. اگر هزینهی False Positive و False Negative تقریباً برابر بود، میتوان از همان معیار دقت (Accuracy) که در درس قبل در مورد آن صحبت شد، استفاده کرد. همچنین اگر دادههای شما در کلاسها به صورت نامتوازن پخش شده بود (برای مثال اگر ۹۰ درصد بیمار و ۱۰ درصد شخص سالم داشتیم) بهتر است که از معیارهای صحت، پوشش و یا F1 استفاده کنیم.
- ۱ » الگوریتم K نزدیک ترین همسایه (KNN)
- ۲ » درخت های تصمیم جهت طبقهبندی (Decision Trees)
- ۳ » الگوریتم درخت تصمیم ID3 و ساختار Entropy و Gain
- ۴ » آشنایی با مفهوم Overfitting و Underfitting در طبقهبندی
- ۵ » آشنایی با مفهوم Bias و Variance در طبقهبندی
- ۶ » الگوریتم طبقهبندی درخت تصمیم C4.5
- ۷ » الگوریتم طبقه بند درخت تصمیم CART
- ۸ » طبقه بند ترکیبی (Ensemble Classifier) و مبحث Bagging و Boosting
- ۹ » الگوریتم جنگل تصادفی (Random Forest)
- ۱۰ » رگرسیون لجستیک (Logistic Regression)
- ۱۱ » مسائل طبقهبندی دودویی (binary)، چند کلاسه (Multi Class)، چند برچسبه (Multi Label) و تفاوت آنها
- ۱۲ » روش «یک در مقابل همه (One vs. All)» برای طبقهبندی دادههای چند کلاسه
- ۱۳ » روش «یک در مقابل یک (One vs. One)» در طبقهبندی
- ۱۴ » مدلهای احتمالی در مقابل مدلهای قطعی در طبقهبندی دادهها
- ۱۵ » ماتریس اغتشاش (Confusion Matrix) و معیار دقت (Accuracy)
- ۱۶ » معیار صحت (Precision)، پوشش (Recall) و معیار F
- ۱۷ » معیار کاپا (Kappa) برای ارزیابی طبقهبندیهای چندکلاسه
توضیحاتتون مثل همیشه عالی هست .سپاس فراوان
با سلام و ممنون از توضیحاتتون.
ببخشید یه سوال داشتم خدمتتون در مورد مقیاس این معیارها هم میشه توضیح دهید؟
جایی در مورد مقیاس این معیارها به چشمم خورد و الان برام سوال شده است که مقیاس این معیار چه چیزی است
سلام
بین صفر و یک هست مقیاسشون
با سلام. ممنون از توضیحات خوبتون ..اما در انتهای مقاله ذکر شده معیار f1 ترکیبی از معیارهای دقت و صحت است درحالیکه فرمول بیانگر این هست که معیار f1 ترکیبی از معیارهای پوشش و صحت است.
با سلام و عرض ادب
مطالب عالی و خیلی مورد نیاز بنده بود و همچنین خیلی عالی، ساده و قابل فهم بیان شد.
خداخیرتان بدهد. با تشکر
سلام
ببخشید من فکر میکنم Accuracy به معنای صحت می باشد که میشود مجموع قطر اصلی ماتریس تقسیم بر کل درایه های ماتریس و Precision به معنای دقت است. باتشکر
عالی…ممنون
میتواند در مواردی که هزینهی False Positive و False Negative متفاوت است به کار رود.
منظورتون از هزینه چه چیزی است؟
سلام وقت بخیرمیانگین کاهشی دقت چطورحساب میشه؟
خیلی عالی بود.
معیار فراخوان کدام معیار است؟ چون گفتید معیار پوشش را معیار حساسیت نیز میگویند. معیار فراخوان کدوم معیار است؟
عالی
سلام جناب کاویانی عزیز
معیارهای معرفی شده مانند: precision, accuracy, recall زمانی قابل محاسبه هستند که یک الگوریتم در کاربرد دسته بندی استفاده شده باشد؟؟
درواقع سوال من این است که این معیار ها فقط مربوط به مطالعات الگوریتم ها در کاربرد خوشه بندی است؟
مثلا فرض کنید، یک الگوریتم بهینه سازی مثل الگوریتم ژنتیک در بهینه سازی یک مسأله طراحی استفاده شده است و راه حل بهینه بدست آمده است. چگونه میتوان معیارهای فوق را برای این کاربرد محاسبه کرد؟
با تشکر از شما.
با سلام
جسارتاً استاد
در تعاریف و بررسی ها اکثراً معیار Precision بعنوان دقت و معیار Accuracy بعنوان صحت مورد استفاده قرار میگیرد که اینجا بر عکس عنوان فرمودین
با تشکر
سلام
در برخی ترجمهها صحبت شما درست هست
معیار من ترجمهی اولیهی دکتر اسماعیلی بود که به نظر بیشتر در موارد دانشگاهی مورد استفاده قرار میگیرد
بسیار عالی و قابل فهم توضیح دادید. سپاس فراوان
بلاخره کدوم دقت میشه کدوم صحت ؟
سلام ممنون برای مطالب عالی و واقعا روان.
جسارتا دو تا اشکال به چشمم خورد در بخش recall:
یک جا نوشته شده “به دنبال محاسبهی پوشش بر روی کل دادههاست” که به نظرم ابهام داره و صحیح تر این هست که نوشته بشه “کل داده های مثبت”.
یک جا هم برای FN نوشته شده: ” ۴ نفر به اشتباه، سالم تشخیص داده شدهاند” که فکر میکنم اشتباهی تایپ شده و باید نوشته بشه “به اشتباه بیمار تشخیص داده شده اند” یعنی سالم بودند.
ببخشید ایراد مورد دومم در پیام قبلی صحیح نیست، و نوشته شما صحیح هست. ممنون میشم تصحیح بفرمایید.
عالی عالی عالی
واقعا دستتون درد نکنه استاد
خیلی روان توضیح میدید
سلام تفاوت معنایی فرمول Accuracy , precision , recall چیست
خیلی عالی توضیح دادین دم شما گرم