Как проверить прогноз моего набора данных - PullRequest
0 голосов
/ 27 октября 2019

У меня есть 3 папки наборов данных,

1- Face Images 
2- Non-Face Images 
3- Testing Dataset

Я обучил свой набор данных с помощью SVM, используя FaceImages в качестве 1 и Изображения без лица в качестве -1. Мой файл обучен и сохранен в формате .xml. Я проверил прогноз на некоторых изображениях из набора тестируемых данных, который представляет собой смесь положительных и отрицательных наборов данных. Сейчас я пытаюсь создать путаницу. Я читал об этом с здесь .

В моем тестовом наборе данных изображения имеют почти 50 (35 положительных и 15 отрицательных) названных 1_F.jpg, 2_F.jpg, 3_NF ... 50NF.jpg. Здесь F - для лица, а NF - не для лица. На самом деле это имена изображений.

Can I call it a labeled dataset?

Как я могу создать запутанную матрицу, применяя ее ко всем изображениям в папке, Как я могу узнать, правильно ли она предсказываетобраз?

Из примера здесь , у них уже есть предсказанная матрица, но я думаю, что у меня нет этой. Я также проверил это и это для лучшего понимания.

1 Ответ

1 голос
/ 28 октября 2019

Чтобы создать матрицу путаницы, извлеките библиотеку scikit-learn в Python. Предполагая, что y_actual - это ваш набор тестовых меток, функции, соответствующие изображениям в вашем тестовом наборе, хранятся в переменной с именем X_test, а ваш обученный классификатор как clf, один из возможных способов построения матрицы путаницы:как показано ниже:

from sklearn.metrics import confusion_matrix 
y_pred = clf.predict(X_test)
## Obtaining confusion matrix below
CM = confusion_matrix(y_pred, y_actual)

Могу ли я назвать его помеченным набором данных?

Без оригинальных меток для вашего набора тестов вы не сможете подтвердить свои прогнозы,Из матрицы путаницы вы можете получить различные показатели производительности вашей модели.

Учитывая, что вы назвали свои изображения в тестовом наборе в зависимости от наличия лица или нет, вы можете использовать это для получения y_actual

import glob
import os

import numpy as np

def obtain_y_pred(test_folder):
    label = {'F':1, 'NF':-1}
    test_images = glob.glob(os.path.join(test_folder, '*.jpg'))
    y_test_ = []
    for image in test_images:
        y_test_.append(label[image.split('/')[-1].split('.')[0].split('_')[-1]])

    return np.array(y_test_)

Подводя итог, вам сначала нужно знать метки вашего тестового набора. Затем вам нужно оценить производительность вашей модели на тестовом наборе после обучения на тренировочном наборе .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...