2

我正在使用漂亮的 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()

4

0 回答 0