计算生物识别系统(MATLAB)的错误接受率和错误拒绝率 [英] Calculate False Acceptance and False Rejection Rates for a biometric system (MATLAB)

查看:324
本文介绍了计算生物识别系统(MATLAB)的错误接受率和错误拒绝率的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个名为(all_output)的矩阵(这是由36个用户组成的输出训练和测试神经网络).此矩阵包含36个单元格,每个单元格具有 504 值(如所附图片所示)

(全部输出)的每个单元格的内容显示在所附图像中

                              **___Update__**

我将解释(all_output)的构造方式

神经网络经过培训后,我使用该代码来测试神经网络

% % %     Test the Network  %%%%%%%
     outputs = net(Testing_Gen{i});

     all_output{1,i}=outputs

Testing_Gen :是大小矩阵(如附件所示,为1 * 36个单元格 图像).

为了了解 Testing_Gen 矩阵的内容

对于每个用户,我有14个测试样本(示例),并且对于每个样本,已经提取了143个特征并将其存储在列中.

Testing_Gen 矩阵中的每个单元格都包含用户的测试样本和冒名顶替者的测试样本(如下图所示)

我们可以看到一个单元格(143行 x 504列),每个单元格中的前 14列是用户的样本(真实用户的样本),其余列是冒名顶替者的样本(490个样本[14 * 35])

例如,我为User1提取了 14个示例示例,因此,第一个单元格包含 User1 (共14个)和冒名顶替者的样本(490个样本[14 * 35]),以计算FAR和FRR

我要计算错误接受率(FAR),错误拒绝率(FRR)和均等错误率(EER)对于此矩阵.

错误接受率是系统错误地将冒名顶替者视为合法用户的百分比.

例如,要计算User1的FAR,需要针对 User1 测试所有冒名顶替者的样本(已存储在(all_output)矩阵中)程序 36 次.

错误拒绝率显示授权用户被系统错误拒绝的百分比.

例如,要计算User1的FRR,需要针对 User1 测试他所有的测试样本(已经存储在(all_output)矩阵中)每个真实用户的操作步骤(36次).

EER 只需使用此等式(FAR + FRR)/2

即可计算

在计算 EER 时, EER的结果应显示在 FRR FAR 之间保持平衡的必要性对于系统(换句话说,FAR和FRR的值应尽可能接近彼此,因为我的系统旨在在接受授权用户和拒绝冒名顶替者之间取得平衡).

这是我到目前为止用来计算FRR的代码

%%% performance calculate FAR FRR EER

% %FRR
i=36;  % number of users 
for n=1:i
    counter1=1;
    for t=0:0.01:1     % Threeshold value
        FRRsingletemp=sum(all_output{1,n}(size(all_output{1},1)):size(all_output{1},2)<t)/size(all_output{1},2);
        FRRsingle(counter1)=FRRsingletemp;
        counter1=counter1+1;
    end
    FRR(n,:)=FRRsingle;

end

解决方案

我不确定您的问题是什么,但我不同意您的主张

EER可以简单地使用以下等式(FAR + FRR)/2

来计算

FAR(FRR)不是值,它是取决于阈值的函数. EER是FAR图和FRR图相交的值,如此处.

I have a matrix called (all_output) (which is the output training and testing Neural Network of 36 users). This matrix contains 36 cells, each cell has 504 values ( as shown in the attaced image)

the content of each cell of (all_output) is shown in the attached image

                              **___Update__**

i will explain how the (all_output) has been constructed

After Neural Network has been trained, I have used that code in order to test the Neural Network

% % %     Test the Network  %%%%%%%
     outputs = net(Testing_Gen{i});

     all_output{1,i}=outputs

Testing_Gen: is a matrix of size (1*36 cells as shown in the attached image).

in order to understand the content of Testing_Gen matrix,

for each user, I have 14 test samples(examples), and for each sample 143 features have been extracted and stored in a column.

Each cell in Testing_Gen matrix contains the user's test samples and the imposter's test samples ( as shown in the attached image)

as we could see that one cell is (143 rows x 504 columns), the first 14 columns in each cell is the user's samples ( genuine user's samples) and the remaining columns are the imposter's samples (490 samples [14*35])

for example, I have extracted 14 samples or examples for User1 to be used for testing, therefore, the first cell contains the test samples (examples) of User1 (which are 14) and the imposter's samples as well (490 samples [14*35]) in order to calculate the FAR and FRR

I'd like to calculate the False Acceptance Rate (FAR), False Rejection Rate (FRR) and Equal Error Rate (EER) for this Matrix.

False Acceptance Rate is the percentage in which the system incorrectly accepts an imposter as the legitimate user.

For example, to calculate the FAR for User1 all the imposter's samples (which are already stored in (all_output) matrix) need to be tested against User1 and repeat this procedure 36 times.

False Rejection Rate displays the percentage in which the authorised user is wrongly rejected by the system.

For example, to calculate the FRR for User1 all his testing samples (which are already stored in (all_output) matrix) need to be tested against User1 and repeat this procedure for each genuine user (36 times).

EER simply can be calculated using this equation (FAR+FRR)/2

while calculating EER, the EER's results should show the necessity of having a balance between FRR and FAR for the system (in other words, the value of FAR and FRR should be close to each other as much as possible as my system aim to have a balance between accepting authorised user and rejecting imposters).

This is the code that I have done so far to calculate FRR

%%% performance calculate FAR FRR EER

% %FRR
i=36;  % number of users 
for n=1:i
    counter1=1;
    for t=0:0.01:1     % Threeshold value
        FRRsingletemp=sum(all_output{1,n}(size(all_output{1},1)):size(all_output{1},2)<t)/size(all_output{1},2);
        FRRsingle(counter1)=FRRsingletemp;
        counter1=counter1+1;
    end
    FRR(n,:)=FRRsingle;

end

解决方案

I am not sure what is your question but I cannot agree with your claim

EER simply can be calculated using this equation (FAR+FRR)/2

FAR (FRR) is not a value, it is a function dependent on threshold. EER is the value where FAR graph and FRR graph intersect as can be seen here.

这篇关于计算生物识别系统(MATLAB)的错误接受率和错误拒绝率的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆