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 ]]
されます。つまり、2 つのバイナリ クラス間の一様確率です。
奇妙なことに、このpredict()
関数を使用しただけでは、かなりうまく機能し、確かにすべてに均一な確率を簡単に割り当てることはできません。テスト画像では、正しい顔部分の周りではるかに密な「1」分類が得られ、シーンの他の場所でノイズの多い「1」分類が予想されましたが、予想どおり、主にすべての「0」分類が得られました。
この誤動作の原因は何predict_proba()
ですか?