У меня есть набор данных, который содержит в общей сложности 98 пунктов. Эти предметы в основном представляют собой данные встраивания лица 3 разных людей. Я тренирую эти данные вместе с их метками назначения (basically the name of the person)
, используя SVC
, и использую ядро rbf
. Ниже приведен код:
targets = data['names']
pixels = data['embeddings']
clf = SVC(kernel='rbf', C=100, gamma=0.001, probability=True)
clf = clf.fit(Xtrain_pca, targets)
test_image = cv2.imread(file)
"""
CODE TO PROCESS
TEST IMAGE AND
GET ITS FACE EMBEDDING
"""
pred = clf.predict_proba(test_image_embedding)
print(clf.classes_)
print(pred)
В приведенном выше коде я сначала получаю face embedding data
в переменной pixel
, а также получаю их имена в targets
. Затем я использую SVC
и тренирую классификатор. Позже часть кода читает тестовое изображение (which can belong to either our data set or it can be completely unknown)
. С помощью приведенного выше кода я заметил, что для одного и того же изображения достоверность сильно различается. Например, я запускал код 3 раза на одном и том же входном тестовом изображении, и ниже вывод:
1. ['personA' 'personB' 'personC']
[[0.94455264 0.01351442 0.04193294]]
2. ['personA' 'personB' 'personC']
[[0.92501533 0.01752258 0.05746209]]
3. ['personA' 'personB' 'personC']
[[0.93949205 0.02315398 0.03735398]]
Как вы можете видеть выше, тестовое изображение, которое мы прошли, относится к personA
, но доверие к первый раз был 0.94455264
. Во второй раз, когда мы снова запустили код, мы получили 0.92501533
, а в третий раз - 0.93949205
. Хотя результаты близко совпадают, но почему показатель доверия меняется. Это должно быть исправлено для данного изображения. Может кто-нибудь, пожалуйста, пролить свет на это и, пожалуйста, объясните это. Спасибо