【发布时间】:2013-04-30 09:56:51
【问题描述】:
我正在使用 OneVsRestClassifier 进行多标签分类。它适用于 LinearSVC,但是当我将其应用于 SVC 时,会出现以下错误:
classifier = OneVsRestClassifier(SVC(class_weight='balanced'))
classifier.fit(X1, y1)
y2 = classifier.predict(X2)
Traceback (most recent call last):
...
File "/usr/local/lib/python2.7/dist-packages/sklearn/multiclass.py", line 219, in predict
return predict_ovr(self.estimators_, self.label_binarizer_, X)
File "/usr/local/lib/python2.7/dist-packages/sklearn/multiclass.py", line 93, in predict_ovr
Y = np.array([_predict_binary(e, X) for e in estimators])
File "/usr/local/lib/python2.7/dist-packages/sklearn/multiclass.py", line 66, in _predict_binary
score = estimator.predict_proba(X)[:, 1]
File "/usr/local/lib/python2.7/dist-packages/sklearn/svm/base.py", line 490, in predict_proba
"probability estimates must be enabled to use this method")
NotImplementedError: probability estimates must be enabled to use this method</code>
有人知道是什么吗?
【问题讨论】:
-
t 看起来您正在尝试获得概率输出,但您在训练模型时忘记包含概率估计。你能发布训练命令吗?
-
很简单:
classifier = OneVsRestClassifier(SVC(class_weight='auto')); classifier.fit(X1, y1); y2 = classifier.predict(X2)预测时出现错误(在最后一行)。相同的代码适用于 LinearSVC,但不适用于 SVC,这让我很吃惊。
标签: svm scikit-learn