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
})

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

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
Python - محدود کردن داده (MongoDB Limit)

Python – محدود کردن داده (MongoDB Limit)

Python MongoDB محدود کردن نتایج برای محدود کردن نتایج در MongoDB، از متد limit() استفاده می‌کنیم. متد limit() یک...

بیشتر بخوانید
Python - بروزرسانی (MongoDB Update)

Python – بروزرسانی (MongoDB Update)

به‌روزرسانی یک رکورد برای به‌روزرسانی یک رکورد یا سند در MongoDB، از متد update_one() استفاده می‌کنیم. پارامتر اول متد...

بیشتر بخوانید
Python - حذف کالکشن (MongoDB Drop Collection)

Python – حذف کالکشن (MongoDB Drop Collection)

حذف کالکشن شما می‌توانید یک جدول یا کالکشن در MongoDB را با استفاده از متد drop() حذف کنید. مثالحذف...

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

نظرات

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

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