Scikit-learn: ValueError:連続形式はRidgeClassifierCVではサポートされていません

作成日 2016年03月26日  ·  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、適合
estimator.fit(X、y、sample_weight = sample_weight)
ファイル "E:Anaconda2libsite-packagessklearnlinear_modelridge.py"、行965、適合
for i in range(len(self.alphas))]
ファイル "E:Anaconda2libsite-packagessklearnmetricsscorer.py"、行159、__ call__
値を上げるError( "{0}形式はサポートされていません" .format(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ビット)|(デフォルト、2016年1月29日、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は引数Xyを取ります。これらは、あなたの場合はy_truey_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は受け入れられません。

OPは、彼の目標は連続的ではなく離散的であると述べたと思います。 ターゲットが離散的で、0と1のみの場合にも、同じエラーが発生します。

このページは役に立ちましたか?
0 / 5 - 0 評価