روش های ارزیابی الگوریتم های هوش مصنوعی، مدل های داده کاوی و یادگیری ماشین
معیارهای ارزیابی مدل یا الگوریتم جهت تشخیص دقت و صحت
در این مبحث میخواهیم تعدادی از معیارهای ارزیابی هوش مصنوعی را بررسی کنیم. یکی از مهمترین مراحل پس از طراحی و ساخت یک مدل یا یک الگوریتم، ارزیابی کارآیی (performance) آن است. در ادامه با روس هایی برای ارزیابی مدل آشنا میشویم.
تعریف حساسیت (sensitivity) و تشخیصپذیری (specificity)
حساسیت و تشخیصپذیری دو شاخص مهم برای ارزیابی آماری عملکرد نتایج آزمونهای طبقهبندی باینری (دودویی یا دوحالته) هستند، که در آمار به عنوان توابع طبقهبندی شناخته میشوند. زمانی که بتوان دادهها را به دو گروه مثبت و منفی تقسیم کرد، عملکرد نتایج یک آزمایش که اطلاعات را به این دو دسته تقسیم میکند با استفاده از شاخصهای حساسیت و تشخیصپذیری قابل اندازهگیری و توصیف است.
پارامتر تشخیصپذیری را نیز اصطلاحا دقت (Precision)، و حساسیت را نیز اصطلاحا صحت (Recall) مینامند.
دسته بندی داده ها
۱- مثبت صحیح (True Positive)
۲- مثبت کاذب (False Positive)
۳- منفی صحیح (True Negative)
۴- منفی کاذب (False Negative)
مثال های از “مثبت های کاذب” و “منفی های کاذب”
- بخش امنیت فرودگاه: یک “مثبت کاذب” هنگامی است که اشیاء معمولی مانند کلیدها و یا سکه ها به اشتباه اسلحه تشخیص داده می شوند (و ماشین صدای “بیپ” را ایجاد می کند)
- کنترل کیفیت: یک “مثبت کاذب” هنگامی است که محصول با کیفیت خوب، مردود می شود و یک “منفی کاذب” هنگامی است که محصول بی کیفیت مورد قبول واقع می شود
- نرم افزار ضد ویروس: یک “مثبت کاذب” هنگامی است که یک فایل عادی بعنوان یک ویروس شناخته می شود
- آزمایش پزشکی: گرفتن آزمایش های ارزان قیمت و بررسی آن توسط تعداد زیادی از پزشکان می تواند مثبتهای کاذب زیادی به بار آورد (یعنی جواب تست بگوید که بیمار هستید در حالی که چنین نیست)، و سپس خواسته شود که دوباره آزمایش های با دقت بیشتر بگیرید.
کدام معیارها باید بهتر باشند:
بدیهی است معیار های که تشخیص درست را نمایش میدهند باید بهتر باشند که در زیر با رنگ سبز نشان داده شده است.
۱- مثبت صحیح (True Positive) = درست شناسایی شده است.
۲- مثبت کاذب (False Positive) = اشتباه شناسایی شده است (خطای نوع یک در انجام آزمون).
۳- منفی صحیح (True Negative) = به درستی رد شد.
۴- منفی کاذب (False Negative) = اشتباه رد شد (خطای نوع دوم در انجام آزمون).
ماتریس اختلاط یا درهم ريختگی (confusion matrix)
به ماتریسی گفته میشود که در آن عملکرد الگوریتمهای مربوطه را نشان میدهند. معمولاً چنین نمایشی برای الگوریتمهای یادگیری با ناظر استفاده میشود، اگرچه در یادگیری بدون ناظر نیز کاربرد دارد. معمولاً به کاربرد این ماتریس در الگوریتمهای بدون ناظر ماتریس تطابق می گویند. هر ستون از ماتریس، نمونهای از مقدار پیشبینی شده را نشان میدهد. در صورتی که هر سطر نمونهای واقعی (درست) را در بر دارد. اسم این ماتریس نیز از آنجا بدست میآید که امکان این را آسانتر اشتباه و تداخل بین نتایج را مشاهده کرد.
در حوزه هوش مصنوعی، ماتریس در هم ریختگی به ماتریسی گفته میشود که در آن عملکرد الگوریتمهای مربوطه را نشان میدهند. معمولاً چنین نمایشی برای الگوریتمهای یادگیری با ناظر استفاده میشود، اگرچه در یادگیری بدون ناظر نیز کاربرد دارد. معمولاً به کاربرد این ماتریس در الگوریتمهای بدون ناظر ماتریس تطابق میگویند. هر ستون از ماتریس، نمونهای از مقدار پیشبینیشده را نشان میدهد. درصورتیکه هر سطر نمونهای واقعی (درست) را در بر دارد. اسم این ماتریس نیز ازآنجا بدست میآید که امکان این را آسانتر اشتباه و تداخل بین نتایج را مشاهده کرد. در خارج از هوش مصنوعی این ماتریس معمولاً ماتریس پیشایندی (contingency matrix) یا ماتریس خطا (error matrix) نامیده میشود.
روش های ارزیابی دقت و صحت
درنهایت نتایج بهدستآمده مورد ارزیابی قرارگرفته و برای موارد مختلف تفسیر و استفاده میشود. در ارزیابی معمولا معیارهای زیر متصور است.
- تشکیل ماتریس اختلاط (confusion matrix)
- دقت (Accuracy)
- صحت (Precision)
- Recall: زمانی که ارزش false negatives بالا باشد، معیار Recall، معیار مناسبی خواهد بود.
- F1 Score
- MCC: پارامتر دیگری است که برای ارزیابی کارایی الگوریتمهای یادگیری ماشین از آن استفاده میشود. این پارامتر بیانگر کیفیت کلاسبندی برای یک مجموعه باینری میباشد.
دقت (Accuracy):
به طور کلی، دقت به این معناست که مدل تا چه اندازه خروجی را درست پیشبینی میکند. با نگاه کردن به دقت ، بلافاصله میتوان دریافت که آیا مدل درست آموزش دیده است یا خیر و کارآیی آن به طور کلی چگونه است. اما این معیار اطلاعات جزئی در مورد کارآیی مدل ارائه نمیدهد.
Accuracy = (TP+TN) / (TP+FN+FP+TN)
صحت (Precision) :
وقتی که مدل نتیجه را مثبت (positive) پیشبینی میکند، این نتیجه تا چه اندازه درست است؟ زمانی که ارزش false positives بالا باشد، معیار صحت، معیار مناسبی خواهد بود. فرض کنید، مدلی برای تشخیص سرطان داشته باشیم و این مدل Precision پایینی داشته باشد. نتیجه این امر این است که این مدل، بیماری بسیاری از افراد را به اشتباه سرطان تشخیص میدهد. نتیجه این امر استرس زیاد، آزمایشهای فراوان و هزینههای گزافی را برای بیمار به دنبال خواهد داشت.
در واقع، «حساسیت» معیاری است که مشخص میکند دستهبند، به چه اندازه در تشخیص تمام افراد مبتلا به بیماری موفق بودهاست. همانگونه که از رابطه فوق مشخص است، تعداد افراد سالمی که توسط دستهبند به اشتباه به عنوان فرد بیمار تشخیص داده شدهاند، هیچ تاثیری در محاسبه این پارامتر ندارد و در واقع زمانی که پژوشهگر از این پارامتر به عنوان پارامتر ارزیابی برای دستهبند خود استفاده میکند، هدفش دستیابی به نهایت دقت در تشخیص نمونههای کلاس مثبت است.
در واقع نسبت مقداری موارد صحیح طبقهبندیشده توسط الگوریتم از یک کلاس مشخص، به کل تعداد مواردی که الگوریتم چه بهصورت صحیح و چه بهصورت غلط، در آن کلاس طبقهبندی کرده است که بهصورت زیر محاسبه میشود:
Precision =TP / (TP+FP)
فراخوانی یا حساسیت یا Recall :
در نقطه مقابل این پارامتر، ممکن است در مواقعی دقت تشخیص کلاس منفی حائز اهمیت باشد. از متداولترین پارامترها که معمولا در کنار حساسیت بررسی میشود، پارامتر خاصیت (Specificity)، است که به آن «نرخ پاسخهای منفی درست» (True Negative Rate) نیز میگویند. خاصیت به معنی نسبتی از موارد منفی است که آزمایش آنها را به درستی به عنوان نمونه منفی تشخیص داده است. این پارامتر به صورت زیر محاسبه میشود.
زمانی که ارزش false negatives بالا باشد، معیار Recall، معیار مناسبی خواهد بود. فرض کنیم مدلی برای تشخیص بیماری کشنده ابولا داشته باشیم. اگر این مدل Recall پایینی داشته باشد چه اتفاقی خواهد افتاد؟ این مدل افراد زیادی که آلوده به این بیماری کشنده هستند را سالم در نظر میگیرد و این فاجعه است. نسبت مقداری موارد صحیح طبقهبندی شده توسط الگوریتم از یک کلاس به تعداد موارد حاضر در کلاس مذکور که بهصورت زیر محاسبه میشود:
Recall = Sensitivity = (TPR) = TP / (TP+FN)
معیارهای ارزیابی F1 Score یا F-measure
معیار F1، یک معیار مناسب برای ارزیابی دقت یک آزمایش است. این معیار Precision و Recall را با هم در نظر میگیرد. معیار F1 در بهترین حالت، یک و در بدترین حالت صفر است.
F-measure= 2 * (Recall * Precision) / (Recall + Precision)
معیار (Specificity):
در نقطه مقابل این پارامتر، ممکن است در مواقعی دقت تشخیص کلاس منفی حائز اهمیت باشد. از متداولترین پارامترها که معمولا در کنار حساسیت بررسی میشود، پارامتر خاصیت (Specificity)، است که به آن «نرخ پاسخهای منفی درست» (True Negative Rate) نیز میگویند. خاصیت به معنی نسبتی از موارد منفی است که آزمایش آنها را به درستی به عنوان نمونه منفی تشخیص داده است. این پارامتر به صورت زیر محاسبه میشود.
Specificity (TNR) = TN / (TN+FP)
معیارهای ارزیابی MCC:
پارامتر دیگری است که برای ارزیابی کارایی الگوریتمهای یادگیری ماشین از آن استفاده میشود. این پارامتر بیانگر کیفیت کلاسبندی برای یک مجموعه باینری میباشد. (MCC (Matthews correlation coefficient، سنجهای است که بیانگر بستگی مابین مقادیر مشاهده شده از کلاس باینری و مقادیر پیشبینی شده از آن میباشد. مقادیر مورد انتظار برای این کمیت در بازه 1- و 1 متغیر میباشد. مقدار 1+، نشان دهنده پیشبینی دقیق و بدون خطای الگوریتم یادگیر از کلاس باینری میباشد. مقدار 0، نشان دهنده پیشبینی تصادفی الگوریتم یادگیر از کلاس باینری میباشد. مقدار 1-، نشان دهنده عدم تطابق کامل مابین موارد پیشبینی شده از کلاس باینری و موارد مشاهده شده از آن میباشد.
مدیریت سرور پشتیبانی و مشاوره – ثبت دامنه