اذهب إلى المحتوى

السؤال

نشر

عندما أحاول حساب مصفوفة ال confusion matrix أحصل على الخطأ التالي:

ValueError: Multilabel-indicator is not supported for confusion matrix

علماً أن  البيانات التي أريد بناء المصفوفة عليها هي من الشكل (One-Hot):

[[1, 0, 0,0,0,0],
 [0, 0, 1,0,0,0],
 [0, 0, 0,0,1,0],
 [0, 0, 0,0,1,0]
 ...		]

 

Recommended Posts

  • 1
نشر

لانستخدم الترميز One-Hot مع توابع حساب كفاءة النموذج في Sklearn.
المشكلة في أن مصفوفة الCM لاتقبل أن تكون مدخلاتها من الشكل One-Hot، وإنما يجب أن تكون كالتالي:

y_true (n_samples,)
y_predict(n_samples,)

وبالتالي لحل مشكلتك يجب أن لاتستخدم التحويل One-Hot مع المصفوفة CM.
إذا أردت إرجاع بياناتك لشكلها الطبيعي (بدون ال One-Hot) يمكنك استخدام التابع  argmax على للبيانات التي حولتها إلى الترميز One-Hot كالتالي:

y=y.argmax(axis=1)

ثم يمكنك حساب ال CM بدون مشاكل.
إليك مثال:

# هكذا تتوقع المصفوفة أن تكون مدخلاتها
from sklearn.metrics import confusion_matrix
y_true = [1, 1, 0, 2, 0, 1]
y_pred = [1, 0, 2, 2, 0, 2]
confusion_matrix(y_true, y_pred)

 

  • 1
نشر

بالاطلاع على تعريف ال confusion matrix function من الرابط التالي https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html، يمكن ملاحظة أن الـ parameters: y_true, y_pred يجب أن تكون على شكل مصفوفة ذات بعد واحد.

الحل هنا هو تحويل مصفوفتكم الـ  One-Hot إلى مصفوفة ذات بعد واحد باستعمال argmax function:

في مثالكم:

[[1, 0, 0,0,0,0],
 [0, 0, 1,0,0,0],
 [0, 0, 0,0,1,0],
 [0, 0, 0,0,1,0]
...             ]

ستصبح:

[0,2,4,4,...]

يعني الكود سيكون مماثلا لـ:

confusion_matrix(y_test.values.argmax(axis=1), predictions.argmax(axis=1))

أرجو أني استطعت أن أوضح الفكرة.

بالتوفيق.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...