我正在使用漂亮的Python scikits.learn包来训练一些基于部分的人脸识别的分类器和直方图梯度功能。我已经成功训练了一个线性SVM来识别特定的面部部分,但我对predict_proba()
函数有一些奇怪的问题。
我使用以下培训代码:
import numpy as np
from scikits.learn import svm
# Do some stuff to prepare DATA matrix of feature vector samples
# And LABELS vector of 1's and 0's for positive and negative samples.
clf = svm.SVC(kernel='linear',probability=True)
clf.fit(DATA, LABELS)
但是当我运行predict_proba([test_vector])
时,我只看到[[ 0.5 0.5 ]]
作为输出,即我的两个二进制类之间的统一概率。
奇怪的是,当我只使用predict()
函数时,它的表现相当不错,当然也不能简单地分配所有统一概率。在测试图像上,我在正确的面部周围得到更密集的“1”分类,然后在场景的其他地方有一些预期的嘈杂的“1”分类,但主要是所有“0”分类,如预期的那样。
predict_proba()
可能导致此故障的原因是什么?