Scikit-learn: ValueError: format berkelanjutan tidak didukung di RidgeClassifierCV

Dibuat pada 26 Mar 2016  ·  3Komentar  ·  Sumber: scikit-learn/scikit-learn

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, dipengklasifikasi.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')

Komentar yang paling membantu

"roc_auc" adalah metrik klasifikasi atau peringkat, bukan metrik regresi. Jadi tidak menerima y kontinu.

Semua 3 komentar

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.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat