Python – ماتریس آشفتگی (Confusion Matrix)

ماتریس اشتباه چیست؟

ماتریس اشتباه یک جدول است که در مسائل طبقه‌بندی برای ارزیابی جایی که خطاها در مدل رخ داده‌اند، استفاده می‌شود. این جدول به شما کمک می‌کند که متوجه شوید پیش‌بینی‌های مدل شما تا چه حد درست یا نادرست بوده‌اند.

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

ایجاد ماتریس اشتباه

برای ایجاد ماتریس اشتباه، ابتدا باید مقادیر واقعی و پیش‌بینی شده را تولید کنیم:

مثال:

import numpy
from sklearn import metrics
import matplotlib.pyplot as plt

# تولید مقادیر واقعی و پیش‌بینی شده
actual = numpy.random.binomial(1, 0.9, size=1000)
predicted = numpy.random.binomial(1, 0.9, size=1000)

# ایجاد ماتریس اشتباه
confusion_matrix = metrics.confusion_matrix(actual, predicted)

# تبدیل به نمایش تصویری
cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix=confusion_matrix, display_labels=[0, 1])

# نمایش تصویری
cm_display.plot()
plt.show()

ماتریس اشتباه چهار ربع مختلف دارد:

  1. True Negative (TN) – بالا چپ: تعداد پیش‌بینی‌های صحیح منفی
  2. False Positive (FP) – بالا راست: تعداد پیش‌بینی‌های نادرست مثبت
  3. False Negative (FN) – پایین چپ: تعداد پیش‌بینی‌های نادرست منفی
  4. True Positive (TP) – پایین راست: تعداد پیش‌بینی‌های صحیح مثبت

محاسبه معیارهای مختلف

ماتریس اشتباه به ما کمک می‌کند معیارهای مختلفی برای ارزیابی کیفیت مدل طبقه‌بندی داشته باشیم. این معیارها شامل دقت (Accuracy)، دقت پیش‌بینی (Precision)، حساسیت (Recall)، ویژگی (Specificity)، و امتیاز F (F-score) است.

  • دقت (Accuracy): میزان صحیح بودن پیش‌بینی‌ها.

    محاسبه:

Accuracy = metrics.accuracy_score(actual, predicted)
  • دقت پیش‌بینی (Precision): از میان پیش‌بینی‌های مثبت، چه درصدی واقعاً مثبت هستند؟

    محاسبه:

Precision = metrics.precision_score(actual, predicted)
  • حساسیت (Recall): از میان تمامی موارد مثبت واقعی، چه درصدی به درستی مثبت پیش‌بینی شده‌اند؟

    محاسبه:

Sensitivity_recall = metrics.recall_score(actual, predicted)
  • ویژگی (Specificity): میزان توانایی مدل در پیش‌بینی نتایج منفی.

    محاسبه:

Specificity = metrics.recall_score(actual, predicted, pos_label=0)
  • امتیاز F (F-score): میانگین “هارمونیک” دقت پیش‌بینی و حساسیت. این امتیاز برای داده‌های نامتوازن مفید است.

    محاسبه:

F1_score = metrics.f1_score(actual, predicted)

محاسبه همه معیارها به طور همزمان:

print({
    "Accuracy": Accuracy,
    "Precision": Precision,
    "Sensitivity_recall": Sensitivity_recall,
    "Specificity": Specificity,
    "F1_score": F1_score
})

این معیارها به شما کمک می‌کنند تا به درک بهتری از عملکرد مدل خود برسید و نقاط قوت و ضعف آن را شناسایی کنید.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - رویدادها (Events)

JavaScript – رویدادها (Events)

رویدادهای HTML رویدادها در HTML، “اتفاقاتی” هستند که برای عناصر HTML رخ می‌دهند. این اتفاقات می‌توانند ناشی از کار...

بیشتر بخوانید
JavaScript - سازنده‌های شیء (Object Constructors)

JavaScript – سازنده‌های شیء (Object Constructors)

ساخت آبجکت با تابع سازنده (Object Constructor Function) برای ساخت چندین آبجکت مشابه، از تابع سازنده استفاده می‌شود. این...

بیشتر بخوانید
JavaScript - نمایش شیء (Object Display)

JavaScript – نمایش شیء (Object Display)

نحوه نمایش آبجکت‌ها در جاوااسکریپت هنگام نمایش یک آبجکت جاوااسکریپت به صورت مستقیم، خروجی معمولاً به شکل [object Object]...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.