Как отобразить выходные данные машины опорных векторов на графике в Python - PullRequest
0 голосов
/ 07 апреля 2020

Я работаю над проектом face recognition, в котором у меня есть 2 набора данных изображений

-> person x
    -> image_1.jpg
    -> image_2.jpg
    ...
    ...
    -> image_n.jpg

-> person y
    -> image_1.jpg
    -> image_2.jpg
    ...
    ...
    -> image_n.jpg

Я извлекаю все face изображения и затем также извлекаю лицо embeddings. Затем я сохраняю все embeddings с их names в формате, как показано ниже:

data = {"embeddings": knownEmbeddings, "names": knownNames}

Затем я использую SVM для обучения модели, как показано ниже:

le = LabelEncoder()
labels = le.fit_transform(data["names"])
print(labels)  # This outputs 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 

recognizer = SVC(C=1.0, kernel="linear", probability=True)
recognizer.fit(data["embeddings"], labels)  # data["embeddings"] is a list of ndarrays

После этого шага модель обучена и готова прогнозировать результаты.

Для тестирования я читаю тестовое face изображение, извлекаю face embeddings и затем передаю его в модель, как показано ниже:

preds = recognizer.predict(test_emb)

Предсказание, которое он дает, каждый раз неверно, поэтому мне было интересно, если есть в любом случае я могу построить результаты модели recognizer, чтобы увидеть, что происходит неправильно.? Есть ли какой-то другой способ проверить, почему модель дает неправильное предикационное значение Пожалуйста помоги. Спасибо

...