كيفية الإصلاح: خطأ القيمة: نوع التسمية غير معروف: "مستمر"


من الأخطاء الشائعة التي قد تواجهها في بايثون:

 ValueError : Unknown label type: 'continuous'

يحدث هذا الخطأ عادةً عند محاولة استخدام sklearn لملاءمة نموذج تصنيف مثل الانحدار اللوجستي وتكون القيم التي تستخدمها لمتغير الاستجابة مستمرة بدلاً من الفئوية.

يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.

كيفية إعادة إنتاج الخطأ

لنفترض أننا نحاول استخدام الكود التالي ليناسب نموذج الانحدار اللوجستي:

 import numpy as np
from sklearn. linear_model import LogisticRegression

#define values for predictor and response variables
x = np. array ([[2, 2, 3], [3, 4, 3], [5, 6, 6], [7, 5, 5]])
y = np. array ([0, 1.02, 1.02, 0])

#attempt to fit logistic regression model
classifier = LogisticRegression()
classify. fit (x,y)

ValueError : Unknown label type: 'continuous'

نتلقى خطأ لأن قيم متغير الاستجابة لدينا مستمرة حاليًا.

تذكر أن نموذج الانحدار اللوجستي يتطلب أن تكون قيم متغير الاستجابة قاطعة بحيث:

  • 0 أو 1
  • “نعم أو لا”
  • “نجحت أم فشلت”

حاليًا، يحتوي متغير الاستجابة الخاص بنا على قيم مستمرة مثل 0 و 1.02 .

كيفية اصلاح الخطأ

طريقة حل هذا الخطأ هي ببساطة تحويل القيم المستمرة لمتغير الاستجابة إلى قيم فئوية باستخدام وظيفة LabelEncoder() الخاصة بـ sklearn :

 from sklearn import preprocessing
from sklearn import utils

#convert y values to categorical values
lab = preprocessing. LabelEncoder ()
y_transformed = lab. fit_transform (y)

#view values transformed
print (y_transformed)

[0 1 1 0]

يتم الآن ترميز كل من القيم الأصلية كـ 0 أو 1 .

يمكننا الآن تكييف نموذج الانحدار اللوجستي:

 #fit logistic regression model
classifier = LogisticRegression()
classify. fit (x,y_transformed)

هذه المرة لا نتلقى أي أخطاء لأن قيم استجابة النموذج قاطعة.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في بايثون:

كيفية الإصلاح: خطأ في القيمة: يحتوي الفهرس على إدخالات مكررة، ولا يمكن إعادة تشكيلها
كيفية الإصلاح: خطأ في الكتابة: كائن السلسلة أو البايتات المتوقعة
كيفية الإصلاح: خطأ في الكتابة: الكائن “numpy.float64” غير قابل للاستدعاء

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *