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()
ماتریس اشتباه چهار ربع مختلف دارد:
- True Negative (TN) – بالا چپ: تعداد پیشبینیهای صحیح منفی
- False Positive (FP) – بالا راست: تعداد پیشبینیهای نادرست مثبت
- False Negative (FN) – پایین چپ: تعداد پیشبینیهای نادرست منفی
- 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
})
این معیارها به شما کمک میکنند تا به درک بهتری از عملکرد مدل خود برسید و نقاط قوت و ضعف آن را شناسایی کنید.
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام