首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >王数据库的查准率与查全率

王数据库的查准率与查全率
EN

Stack Overflow用户
提问于 2015-04-22 23:24:26
回答 1查看 1.4K关注 0票数 1

我在MATLAB中开发了一个CBIR系统,并将相似性度量作为欧氏距离。对于每一个查询图像,我都会检索前20张图片。

我用王数据集来测试我的系统。

它包含10个班(如非洲人民、公共汽车、玫瑰等)每个包含100幅图像(总共1000幅图像)。

我的方法:

  1. 我使用Correlogram,共现矩阵和差像素扫描模式分别构建我的向量(64+196+28=288维数)。
  2. 每一个1000分贝的图像,我都有它的矢量事先构造。
  3. 现在来了一个查询图像,我也构造了它的向量(228维)。
  4. 我用欧氏距离进行相似性排序,并按它们的欧几里德距离的降序排序db图像向量。
  5. 前20名的结果显示。
  6. 在这20个中,我可以有TP或FP。

对于单一的查询图像,我可以很容易地计算精度,召回和绘制PR-曲线使用这个链接

我怎么才能为全班同学做同样的事呢?

我的方法是:对于属于A类的每一个图像,查找前20幅图像,分别是TP(真阳性)和FP (假阳性)。

代码语言:javascript
复制
        TP   FP

Image1  17   3  
Image2  15   5  
...  
...  
Image100  10  10  
Total   1500 500  

A类的精度=1500/(2000) = .75 (对吗?)

回忆A类-?

PR-曲线->卡住了?有些链接说我需要分类器,而有些则不.我真的很困惑。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-22 23:59:05

因此,正如您注意到的,您可以按以下方式计算精度。

代码语言:javascript
复制
P = TP ./ ( TP + FP );

但是,您需要有FN或总错误数来计算召回。作为聊天中讨论,您需要找到确定FN和FP数据的方法。然后,您可以使用以下公式计算召回。

代码语言:javascript
复制
R = TP ./ ( TP + FN )

如果您有混淆矩阵或数据,可以使用我的自定义confusionmat2f1.m计算精度、召回和f1分数。这假设混淆矩阵被格式化为如何Matlab定义了它。。每一行的解释都是内联的。如果你想要更多的澄清,请告诉我。

代码语言:javascript
复制
function [F,P,R] = confusionmat2f1( C )
    %% confusionmat2f1( C )
    %
    % Inputs
    % C - Confusion Matrix
    %
    % Outputs
    % F - F1 score column vector
    % P - Precision column vector
    % R - Recall column vector
    
    %% 
    
    % Confusion Matrix to Probability
    M = sum( C, 3 );
    
    % Calculate Precision
    P = diag(M) ./ sum(M,1)';
    
    % Calculate Recall
    R = diag(M) ./ sum(M,2);

    % Calculate F1 Score
    F = f1( P, R );
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29810733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档