计算生物识别系统的错误接受率和错误拒绝率(MATLAB)

时间:2017-02-09 20:49:14

标签: matlab

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

enter image description here

(all_output)的每个单元格的内容显示在附图中

enter image description here

                              **___Update__**

我将解释如何构建(all_output)

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

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

     all_output{1,i}=outputs

Testing_Gen :是一个大小的矩阵(1 * 36个单元格,如附件所示) 图片)。

enter image description here

为了解 Testing_Gen 矩阵的内容,

对于每个用户,我有14个测试样本(示例),并且对于每个样本,143个特征已被提取并存储在一列中。

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

enter image description here

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

例如,我已经为User1提取了 14个样本示例用于测试,因此,第一个单元格包含用户1 (14)和冒名者的样本以及(490个样本[14 * 35])以计算FAR和FRR

我想计算错误接受率(FAR),错误拒绝率(FRR)和等错误率(EER)对于这个矩阵。

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

例如,要计算User1的FAR,所有冒名顶替的样本(已存储在(all_output)矩阵中)需要针对 User1 进行测试并重复此操作程序 36 次。

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

例如,要计算User1的FRR,所有他的测试样本(已存储在(all_output)矩阵中)都需要针对 User1 进行测试并重复此操作每个真实用户的程序(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

1 个答案:

答案 0 :(得分:0)

我不确定你的问题是什么,但我不同意你的说法

  

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

计算

FAR(FRR)不是值,它是依赖于阈值的函数。 EER是FAR图和FRR图相交的值here