Scikit-learn: ValueError: التنسيق المستمر غير مدعوم في RidgeClassifierCV

تم إنشاؤها على ٢٦ مارس ٢٠١٦  ·  3تعليقات  ·  مصدر: scikit-learn/scikit-learn

إذا قمت بتشغيل الكود التالي:

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")

التعليق الأكثر فائدة

"roc_auc" هو تصنيف أو مقياس ترتيب ، وليس مقياس انحدار. لذلك لا يقبل y المستمر.

ال 3 كومينتر

مرحبًا ، يبدو أن القيم التي يتم تمريرها إلى المسجل هنا هي 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 فقط.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات