بلاگ

ارزیابی عملکرد شبکه عصبی مصنوعی با استفاده از Confusion Matrix

در پست قبلی (این لینک)، جهت ارزیابی عملکرد شبکه عصبی مصنوعی از Confusion Matrix (ماتریس در‌هم‌ریختگی) استفاده کردیم. حال در این پست قصد دارم که توصیحات بیشتری در این مورد ارائه دهم.

ماتریس در‌هم‌ریختگی یک ماتریس (جدول) است که می‌تواند برای اندازه‌گیری عملکرد یک الگوریتم یادگیری ماشین (معمولا الگوریتم‌های یادگیری نظارت شده) استفاده شود.

هر ردیف ماتریس در‌هم‌ریختگی نشان‌دهنده نمونه‌ای از یک کلاس واقعی (Actual class) است و هر ستون نمونه‌هایی از یک کلاس پیش‌بینی شده (Predicted class) را نشان می‌دهد.

فرض کنید یک نمونه از ۲۵ حیوان داریم، مثلا ۷ گربه، ۸ سگ و ۱۰ مار، احتمالا مارهای پایتون! ماتریس در‌هم‌ریختگی الگوریتم ما ممکن است مانند جدول زیر باشد:

سطر اول ماتریس: سیستم به طور صحیح شش تا از هشت سگ واقعی را پیش‌بینی کرد، اما در دو مورد به جای سگ، گربه پیش‌بینی کرد.

سطر دوم ماتریس: هفت گربه در شش مورد به طور صحیح شناخته شدند، اما در یک مورد به جای گربه، سگ پیش‌بینی شد.

سطر سوم ماتریس: معمولا، خیلی سخت است که برای یک سگ یا یک گربه مار پیش‌بینی شود، اما در دو مورد این اتفاق برای طبقه‌بندی ما افتاده است. با این وجود، هشت تا از ده مار به درستی شناخته شده است (احتمالا این الگوریتم یادگیری ماشین در زبان برنامه‌نویسی پایتون نوشته نشده است، زیرا پایتون باید گونه‌های خود را به درستی شناسایی کند 😀 )

شما می‌توانید ببینید که همه پیش‌بینی‌های درست در قطر اصلی جدول قرار دارند، بنابراین اشتباهات پیش‌بینی می‌توانند به راحتی در جدول یافت شوند؛ زیرا آنها توسط مقادیر خارج از قطر نشان داده می‌شوند. لذا در صورتی که تمام اعداد غیر واقع بر قطر اصلی صفر باشند، الگوریتم دارای دقت حداکثر است.

ماتریس در‌هم‌ریختگی نتایج زیر را به ما نشان می‌دهد:

  • precision
  • recall
  • accuracy
  • f1-score

اجازه دهید پارامترهای بالا را برای مثال خودمان محاسبه کنیم:

precision (dogs) = 6 / (6+1+1) = 3 / 4 = 0.75

precision (cats) = 6 / (2+6+1) = 6 / 9 = 0.67

precision (snakes) = 8 / (0+0+8) = 1

recall (dogs) = ۶ / (۶+۲+۰) = ۳ / ۴ = ۰.۷۵

recall (cats) = ۶ / (۱+۶+۰) = ۶ / ۷ = ۰.۸۶

recall (snakes) = 8 / (1+1+8) = 4 / 5 = 0.8

f1-score = (2 * precision * recall) / (precision + recall)

f1-score (dogs) = (2*0.75*0.75)/(0.75+0.75) = 0.75

f1-score (cats) = (2*0.67*0.86)/(0.67+0.86) =  ۰.۷۵

f1-score (snakes) = (2*1*0.8)/(1+0.8) = 0.89

accuracy = (۶+۶+۸) / (۲۵) = ۰.۸

دیدگاهتان را بنویسید