Jika Anda menjalankan kode berikut:
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)
Anda mendapatkan pengecualian: _ValueError: format berkelanjutan tidak didukung_ dengan stacktrace:
File "E:/myfolder/cv_issue.py", baris 7, di
pengklasifikasi.fit(x, y)
File "E:Anaconda2libsite-packagessklearnlinear_modelridge.py", baris 1258, sesuai
_BaseRidgeCV.fit(self, X, Y, sample_weight=sample_weight)
File "E:Anaconda2libsite-packagessklearnlinear_modelridge.py", baris 1022, sesuai
estimator.fit(X, y, sample_weight=sample_weight)
File "E:Anaconda2libsite-packagessklearnlinear_modelridge.py", baris 965, sesuai
untuk saya dalam jangkauan(len(self.alphas))]
File "E:Anaconda2libsite-packagessklearnmetricsscorer.py", baris 159, di __call__
menaikkan ValueError("{0} format tidak didukung".format(y_type))
ValueError: format berkelanjutan tidak didukung
Tapi, jelas, saya memberikan output biner jadi saya tidak mengharapkan kesalahan seperti itu di sini. Dan jika Anda mengganti RidgeClassifierCV(scoring='roc_auc')
dengan RidgeClassifierCV(scoring='roc_auc', cv=2)
, kodenya berjalan dengan baik.
Versi saya:
Windows-8.1-6.3.9600
('Python', '2.7.11 |Anaconda 2.5.0 (64-bit)| (default, 29 Jan 2016, 14:26:21) [MSC v.1500 64 bit (AMD64)]')
('NumPy', '1.10.4')
('SciPy', '0.17.0')
('Scikit-Belajar', '0.17')
Hai, sepertinya nilai yang diteruskan ke pencetak gol di sini adalah y
dan cv_values[:,i]
diteruskan sebagai y_true
dan y_score
untuk roc_auc_score
, tetapi dalam pencetak gol, _ThresholdScorer
mengambil argumen X
dan y
yang sekarang sesuai dengan y_true
dan y_score
dalam kasus Anda adalah
[ 1. -1. 1. -1. 1. -1.]
[ 0.45824999 -1.64622488 0.6707735 -0.74680963 0.07694918 0.49169546]
Jadi pemeriksaan y_type
memunculkan kesalahan tipe continuous
. Saya tidak yakin apakah ini perilaku yang diharapkan di sini karena pencetak ambang batas dirancang dengan maksud ini. Maaf tidak bisa banyak membantu di sini.
"roc_auc" adalah metrik klasifikasi atau peringkat, bukan metrik regresi. Jadi tidak menerima y kontinu.
Saya percaya OP menyatakan bahwa targetnya diskrit, tidak berkelanjutan. Saya juga mendapatkan kesalahan yang sama dengan target yang diskrit, 0s dan 1s saja.
Komentar yang paling membantu
"roc_auc" adalah metrik klasifikasi atau peringkat, bukan metrik regresi. Jadi tidak menerima y kontinu.