Как использовать 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:

  1. Используйте Python API для вычисления EER с использованием массивов numpy.
  2. Используйте приложение командной строки для создания коэффициентов ошибок (включая 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 для получения показателей, связанных с биометрией.

Другие вопросы по тегам