Как использовать bob.measure.load.split()
Я студент, специализирующийся на машинном обучении, и меня интересует аутентификация. Мне интересна ваша библиотека, потому что я хочу рассчитать EER.
Извините за основной вопрос, но расскажите, пожалуйста, о bob.measure.load.split()
.
Правильный ли формат файла для этого с учетом того, что первый столбец является правильной меткой, а второй столбец - прогнозируемой оценкой модели?
подобно
# file.txt
|label|prob |
| -1 | 0.3 |
| 1 | 0.5 |
| -1 | 0.8 |
...
Кроме того, должен ли я следовать следующей процедуре для фактического расчета EER?
neg, pos = bob.measure.load.split('file.txt')
eer = bob.measure.eer(neg, pos)
Искренне.
1 ответ
У вас есть два варианта расчета EER с помощью bob.measure:
- Используйте Python API для вычисления EER с использованием массивов numpy.
- Используйте приложение командной строки для создания коэффициентов ошибок (включая EER) и графиков.
Использование Python API
Во-первых, вам нужно загрузить оценки в память и разделить их на положительные и отрицательные. Например:
import numpy as np
import bob.measure
positives = np.array([0.5, 0.5, 0.6, 0.7, 0.2])
negatives = np.array([0.0, 0.0, 0.6, 0.2, 0.2])
eer = bob.measure.eer(negatives, positives)
print(eer)
Это напечатает 0.2
. Все, что вам нужно - это следить за тем, чтобы ваши положительные результаты сравнения были выше, чем отрицательные. То есть ваша модель должна набрать больше очков за положительные образцы.
Используя командную строку
bob.measure также поставляется с набором команд командной строки, которые могут помочь вам узнать количество ошибок. Чтобы использовать командную строку, вам необходимо сохранить результаты в текстовый файл. Этот файл состоит из двух столбцов, разделенных пробелом. Например, файл партитуры для того же примера будет:
$ cat scores.txt
1 0.5
1 0.5
1 0.6
1 0.7
1 0.2
-1 0.0
-1 0.0
-1 0.6
-1 0.2
-1 0.2
а затем вы позвоните
$ bob measure metrics scores.txt
[Min. criterion: EER ] Threshold on Development set `scores.txt`: 3.500000e-01
================================ =============
.. Development
================================ =============
False Positive Rate 20.0% (1/5)
False Negative Rate 20.0% (1/5)
Precision 0.8
Recall 0.8
F1-score 0.8
Area Under ROC Curve 0.8
Area Under ROC Curve (log scale) 0.7
================================ =============
Хорошо, он не печатал точно EER, но EER = (FPR+FNR)/2
.
Использование командной строки bob.bio.base
Если ваши оценки являются результатами биометрического эксперимента, вы хотите сохранить их в формате 4 или 5 столбцов bob.bio.base. См. Пример в https://gitlab.idiap.ch/bob/bob.bio.base/-/blob/3efccd3b637ee73ec68ed0ac5fde2667a943bd6e/bob/bio/base/test/data/dev-4col.txt и документацию в https://www.idiap.ch/software/bob/docs/bob/bob.bio.base/stable/experiments.html Затем вызовитеbob bio metrics scores-4-col.txt
для получения показателей, связанных с биометрией.