如何理解等错误率(EER, Equal Error Rate)?

在语音vad和KWS任务中,经常用到EER,怎么正确理解EER

FR定义:在一批本该全部正确(TRUE)的列表中出现几个没识别出正确的语音,这个就是错误拒识FR(False Rejection),是Miss的;

FA定义:在一批本该全部错误(Flase)的列表中出现了几个没识别出错误的语音,就是错误的语音被认为对了,FA(False Acceptance),是Flase Alarm的。

各自占的比例:FR = Miss / Total_TRUE;FA= False Alarm/ Total_False,这个分别对应DET曲线图的纵轴和横轴的截距。可以看下图:


至于等错误率,是可以从DET中快速读出:

这个图里的RBF核的EER等于7.3%,linear和sigmoid是9.1%左右,poly是13.3%,当我们在图上找出(7.3,7.3); (9.1,9.1), (13.3,13.3)时,而这些数值其实正好是在各自的曲线上,同时都位于“y=x”的直线上。所以往DET上画y=x直线,与DET曲线相交的点,就是从DET快速读出EER的方法。

而当FA=0,本错的都识别出,部分本对的也拒绝掉,就是FR的截距;当FR=0,本对的都识别出,部分本错的也接收了,就是FA的截距。

而曲线的点是根据阈值画出:

当阈值变小时,FR会随之变小,而FA随之增大,可以参考DET曲线图下降趋势;当到某一点,会存在FR=FA,这时的阈值就是等错误率阈值,有EER=FR=FA。同时,拒绝掉的正确样本占总正确列表个数=接受了的错误样本占总错误列表个数(把阈值看作为一条界线划开)

更多链接:https://www.zhihu.com/question/37436914/answer/150485174

EEREqual Error Rate(相等错误率)的缩写,是指在二分类问题中,当误识率和漏识率相等时所对应的错误率。 在MATLAB中,可以通过以下步骤计算生物识别系统的EER: 1.首先,获取测试数据的得分和标签。得分是一个向量,其中元素表示每个测试样本的得分;标签是一个向量,其中元素表示每个测试样本的标签,1表示正样本,0表示负样本。 2.使用`sort`函数将得分向量按从小到大的顺序排序,并将排序后的标签向量相应地排序。 3.计算误识率和漏识率。误识率是指将负样本误判为正样本的比率,漏识率是指将正样本误判为负样本的比率。可以通过以下公式计算: ```matlab FPR = cumsum(sorted_labels == 0) / sum(sorted_labels == 0); TPR = cumsum(sorted_labels == 1) / sum(sorted_labels == 1); ``` 其中,`cumsum`函数返回一个向量,其中元素是输入向量的累积和。`sorted_labels == 0`返回一个逻辑向量,其中元素为1表示对应的元素等于0,为0表示对应的元素不等于0。同理,`sorted_labels == 1`返回一个逻辑向量,其中元素为1表示对应的元素等于1,为0表示对应的元素不等于1。 4.计算EEREER是误识率和漏识率相等时的错误率,可以通过以下公式计算: ```matlab diff = TPR - FPR; [min_diff, min_index] = min(abs(diff)); EER = (FPR(min_index) + TPR(min_index)) / 2; ``` 其中,`diff`是TPR和FPR之差的向量,`min_diff`是`diff`中的最小值,`min_index`是`diff`中最小值的索引,即TPR和FPR之差最小的点的索引。EER是误识率和漏识率相等时的错误率,等于TPR和FPR之差最小的点的FPR和TPR的平均值。 以上是计算生物识别系统的EER的步骤。计算错误接受率和错误拒绝率的方法也类似,只需要将标签向量中的1和0互换即可。具体代码实现可以参考以下示例: ```matlab % 获取测试数据的得分和标签 scores = randn(1000, 1); labels = randi([0 1], 1000, 1); % 将得分向量按从小到大的顺序排序,并将排序后的标签向量相应地排序 [sorted_scores, sort_index] = sort(scores); sorted_labels = labels(sort_index); % 计算误识率和漏识率 FPR = cumsum(sorted_labels == 0) / sum(sorted_labels == 0); TPR = cumsum(sorted_labels == 1) / sum(sorted_labels == 1); % 计算EER diff = TPR - FPR; [min_diff, min_index] = min(abs(diff)); EER = (FPR(min_index) + TPR(min_index)) / 2; % 计算错误接受率和错误拒绝率 FAR = 1 - FPR; % 错误接受率等于1减误识率 FRR = 1 - TPR; % 错误拒绝率等于1减漏识率 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值