إذا قمت بتشغيل الكود التالي:
import numpy as np
from sklearn.linear_model.ridge import RidgeClassifierCV
classifier = RidgeClassifierCV(scoring='roc_auc')
x = np.array([[1, 2, 3], [3, 4, 9], [4, 9, 1], [8, 0, 4], [1, 1, 4], [1.1, 2, 4]])
y = np.array([True, False, True, False, True, False])
classifier.fit(x, y)
تحصل على الاستثناء: _ValueError: التنسيق المستمر غير مدعوم_ مع تتبع التكديس:
ملف "E: /myfolder/cv_issue.py" ، السطر 7 ، بتنسيق
classifier.fit (x، y)
ملف "E: Anaconda2libsite-packagessklearnlinear_modelridge.py" ، السطر 1258 ، ملائم
_BaseRidgeCV.fit (self، X، Y، sample_weight = sample_weight)
ملف "E: Anaconda2libsite-packagessklearnlinear_modelridge.py" ، السطر 1022 ، ملائم
مقدر.الملاءمة (X، y، sample_weight = sample_weight)
ملف "E: Anaconda2libsite-packagessklearnlinear_modelridge.py" ، سطر 965 ، ملائم
لـ i في النطاق (len (self.alphas))]
ملف "E: Anaconda2libsite-packagessklearnmetricsscorer.py" ، السطر 159 ، في __call__
زيادة ValueError ("تنسيق {0} غير مدعوم". تنسيق (y_type))
ValueError: التنسيق المستمر غير مدعوم
لكن من الواضح أنني قدمت ناتجًا ثنائيًا لذلك لا أتوقع مثل هذا الخطأ هنا. وإذا استبدلت RidgeClassifierCV(scoring='roc_auc')
بـ RidgeClassifierCV(scoring='roc_auc', cv=2)
، فإن الكود يعمل بشكل جيد.
الإصدارات الخاصة بي:
نظام التشغيل Windows-8.1-6.3.9600
('Python'، '2.7.11 | Anaconda 2.5.0 (64 بت) | (افتراضي ، 29 يناير 2016 ، 14:26:21) [MSC v.1500 64 بت (AMD64)]')
("NumPy"، "1.10.4")
("SciPy"، "0.17.0")
("Scikit-Learn"، "0.17")
مرحبًا ، يبدو أن القيم التي يتم تمريرها إلى المسجل هنا هي y
و cv_values[:,i]
تم تمريرها كـ y_true
و y_score
لـ roc_auc_score
، ولكن في أداة التسجيل ، يأخذ _ThresholdScorer
الوسيطات X
و y
والتي تتوافق الآن مع y_true
و y_score
في حالتك
[ 1. -1. 1. -1. 1. -1.]
[ 0.45824999 -1.64622488 0.6707735 -0.74680963 0.07694918 0.49169546]
وبالتالي فإن الشيك y_type
يظهر خطأ continuous
النوع. لست متأكدًا مما إذا كان هذا هو السلوك المتوقع هنا منذ أن تم تصميم سجل العتبة بهذه النية. آسف لا يمكن أن تساعد كثيرا هنا.
"roc_auc" هو تصنيف أو مقياس ترتيب ، وليس مقياس انحدار. لذلك لا يقبل y المستمر.
أعتقد أن البروتوكول الاختياري ذكر أن أهدافه كانت منفصلة وليست مستمرة. أحصل أيضًا على نفس الخطأ مع كون الأهداف منفصلة ، 0 و 1 فقط.
التعليق الأكثر فائدة
"roc_auc" هو تصنيف أو مقياس ترتيب ، وليس مقياس انحدار. لذلك لا يقبل y المستمر.