mahsa sanaei
mahsa sanaei
خواندن ۲ دقیقه·۶ ماه پیش

ماتریس سردرگمی (Confusion Matrix)


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


تعریف عناصر ماتریس سردرگمی:


1. True Positive (TP): تعداد نمونه‌های مثبتی که به درستی توسط مدل به عنوان مثبت پیش‌بینی شده‌اند.

2. False Positive (FP): تعداد نمونه‌های منفی که به اشتباه توسط مدل به عنوان مثبت پیش‌بینی شده‌اند.

3. False Negative (FN): تعداد نمونه‌های مثبتی که به اشتباه توسط مدل به عنوان منفی پیش‌بینی شده‌اند.

4. True Negative (TN): تعداد نمونه‌های منفی که به درستی توسط مدل به عنوان منفی پیش‌بینی شده‌اند.


معیارهای ارزیابی از ماتریس سردرگمی


با استفاده از عناصر ماتریس سردرگمی می‌توان معیارهای مختلفی برای ارزیابی عملکرد مدل محاسبه کرد. این معیارها عبارتند از:


1. دقت (Accuracy):


Accuracy = (TP + TN) / (TP + TN + FP + FN)
Accuracy = (TP + TN) / (TP + TN + FP + FN)


دقت نسبت نمونه‌های درست پیش‌بینی شده (مثبت و منفی) به کل نمونه‌ها را نشان می‌دهد.


2. دقت مثبت (Precision):

Precision = TP / (TP + FP)
Precision = TP / (TP + FP)


دقت مثبت نشان می‌دهد چه درصدی از نمونه‌های پیش‌بینی شده به عنوان مثبت واقعاً مثبت هستند.


3. بازخوانی یا حساسیت (Recall):

Precision = TP / (TP + FP)
Precision = TP / (TP + FP)


بازخوانی نشان می‌دهد چه درصدی از نمونه‌های مثبت واقعی توسط مدل به درستی به عنوان مثبت شناسایی شده‌اند.


4. امتیاز F1 (F1 Score):

F1 Score = 2 * (Precision * Recall) / (Precision + Recall)


امتیاز F1 میانگین هارمونیک دقت و بازخوانی است و زمانی که تعادل بین دقت و بازخوانی مهم است، استفاده می‌شود.


رسم ماتریس سردرگمی


برای درک بهتر این مفاهیم، می‌توانیم یک ماتریس سردرگمی را برای یک مجموعه داده نمونه رسم کنیم. به عنوان مثال، از مجموعه داده‌های Iris و مدل رگرسیون لجستیک استفاده می‌کنیم.


import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression


بارگذاری داده‌های Iris

data = load_iris()
X = data.data
y = data.target


تقسیم داده‌ها به داده‌های آموزشی و آزمون

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)


ایجاد مدل رگرسیون لجستیک

model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)


پیش‌بینی بر روی داده‌های آزمون

y_pred = model.predict(X_test)


ایجاد ماتریس سردرگمی

cm = confusion_matrix(y_test, y_pred)


رسم نمودار ماتریس سردرگمی

disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=data.target_names)
disp.plot(cmap=plt.cm.Blues)
plt.title('Confusion Matrix')
plt.show()



تحلیل نمودار ماتریس سردرگمی



در این نمودار:

- محور افقی نشان‌دهنده‌ی برچسب‌های پیش‌بینی شده (Predicted Labels) است.

- محور عمودی نشان‌دهنده‌ی برچسب‌های واقعی (True Labels) است.

- هر خانه نشان‌دهنده تعداد نمونه‌هایی است که به آن کلاس خاص تعلق دارند.


برای مثال:

- خانه‌ی [0, 0] نشان‌دهنده تعداد نمونه‌هایی است که به درستی به عنوان کلاس 0 پیش‌بینی شده‌اند (True Positive).

- خانه‌ی [0, 1] نشان‌دهنده تعداد نمونه‌هایی است که به اشتباه به عنوان کلاس 0 پیش‌بینی شده‌اند، در حالی که واقعاً کلاس 1 هستند (False Positive).



confusion matrixهوش مصنوعیماشین لرنینگپایتونریاضی
مهسا ثنایی هستم.مهندس کامپیوتر و فعال در حوزه جذاب هوش مصنوعی
شاید از این پست‌ها خوشتان بیاید