ما هي مصفوفة الارتباك؟
تعتبر مصفوفة الارتباك أداة مهمة في تقييم أداء نماذج التعلم الآلي، خاصة في مشاكل التصنيف. تُستخدم هذه المصفوفة لتقديم ملخص مرئي لمدى جودة أداء النموذج في تصنيف البيانات إلى فئات مختلفة. تتكون مصفوفة الارتباك من جدول يوضح التنبؤات الصحيحة والخاطئة للنموذج عبر الفئات المختلفة. يحتوي هذا الجدول عادةً على أربعة مكونات رئيسية: True Positive (TP) وTrue Negative (TN) وFalse Positive (FP) وFalse Negative (FN). فهم هذه القيم يمكننا من حساب مقاييس أداء متعددة مثل الدقة والاسترجاع والمقاييس الأخرى ذات الصلة.
كيفية إنشاء مصفوفة الارتباك في بايثون
يمكن إنشاء مصفوفة الارتباك بسهولة في بايثون باستخدام مكتبات شهيرة مثل Scikit-learn وMatplotlib. في المثال التالي، سنقوم بإنشاء نموذج تصنيفي بسيط ومن ثم سنقوم بحساب مصفوفة الارتباك له. أولاً، سنقوم باستيراد المكتبات اللازمة وإنشاء نموذج تصنيفي بسيط باستخدام مجموعة بيانات معروفة مثل Iris. بعد تدريب النموذج، سنقوم باستخدام الوظيفة confusion_matrix من مكتبة Scikit-learn لحساب المصفوفة.
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix
import matplotlib.pyplot as plt
import seaborn as sns
# تحميل البيانات
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=42)
# تدريب النموذج
model = RandomForestClassifier()
model.fit(X_train, y_train)
# التنبؤات
y_pred = model.predict(X_test)
# مصفوفة الارتباك
cm = confusion_matrix(y_test, y_pred)
# عرض مصفوفة الارتباك
sns.heatmap(cm, annot=True, fmt="d", cmap="Blues", xticklabels=iris.target_names, yticklabels=iris.target_names)
plt.xlabel('Predicted')
plt.ylabel('True')
plt.title('Confusion Matrix')
plt.show()
في هذا المثال، قمنا بتدريب نموذج RandomForestClassifier على مجموعة بيانات Iris. بعد ذلك، قمنا بتوليد التنبؤات لمجموعة البيانات الاختبارية وحساب مصفوفة الارتباك باستخدام الوظيفة confusion_matrix. أخيرًا، استخدمنا مكتبة Seaborn لعرض المصفوفة بشكل مرئي مما يسهل تفسير النتائج.
تحليل نتائج مصفوفة الارتباك
بعد إنشاء مصفوفة الارتباك، من المهم تحليل النتائج لفهم أداء النموذج بشكل أعمق. على سبيل المثال، يمكننا حساب الدقة (Precision) التي تعبر عن نسبة التنبؤات الصحيحة من بين جميع التنبؤات الإيجابية. يمكن أيضًا حساب الاسترجاع (Recall) الذي يعبر عن نسبة التنبؤات الصحيحة من بين جميع العينات الحقيقية الإيجابية. هذه المقاييس تساعد على تحديد نقاط القوة والضعف في النموذج وتوجيه الجهود لتحسينه.
