如何使用 bob.measure.load.split()
How to use 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)
此致。
计算 EER 有两种选择 bob.measure:
- 使用 Python API 使用 numpy 数组计算 EER。
- 使用命令行应用程序生成错误率(包括 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 还附带了一套命令行命令,可以帮助您获得错误率。要使用命令行,您需要将分数保存在文本文件中。此文件由两列 组成,其中列由 space 分隔。例如,同一示例的乐谱文件为:
$ 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命令行
如果您的分数是生物识别实验的结果,
那么您想以 bob.bio.base 的 4 或 5 列格式保存您的分数。
请参阅 https://gitlab.idiap.ch/bob/bob.bio.base/-/blob/3efccd3b637ee73ec68ed0ac5fde2667a943bd6e/bob/bio/base/test/data/dev-4col.txt and documentation in https://www.idiap.ch/software/bob/docs/bob/bob.bio.base/stable/experiments.html#evaluating-experiments 中的示例
然后,您将调用 bob bio metrics scores-4-col.txt
以获取与生物识别相关的指标。
我是一名主修机器学习的学生,我对身份验证很感兴趣。 我对你们的图书馆很感兴趣,因为我想计算 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)
此致。
计算 EER 有两种选择 bob.measure:
- 使用 Python API 使用 numpy 数组计算 EER。
- 使用命令行应用程序生成错误率(包括 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 还附带了一套命令行命令,可以帮助您获得错误率。要使用命令行,您需要将分数保存在文本文件中。此文件由两列 组成,其中列由 space 分隔。例如,同一示例的乐谱文件为:
$ 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命令行
如果您的分数是生物识别实验的结果,
那么您想以 bob.bio.base 的 4 或 5 列格式保存您的分数。
请参阅 https://gitlab.idiap.ch/bob/bob.bio.base/-/blob/3efccd3b637ee73ec68ed0ac5fde2667a943bd6e/bob/bio/base/test/data/dev-4col.txt and documentation in https://www.idiap.ch/software/bob/docs/bob/bob.bio.base/stable/experiments.html#evaluating-experiments 中的示例
然后,您将调用 bob bio metrics scores-4-col.txt
以获取与生物识别相关的指标。