Matlab 在WANG数据库上计算精度和召回率
我在MATLAB中制作了一个CBIR系统,并使用相似性度量作为欧氏距离。 对每个查询图像使用此选项,我将检索前20个图像 我已经使用了用于测试我的系统。Matlab 在WANG数据库上计算精度和召回率,matlab,image-processing,cbir,precision-recall,Matlab,Image Processing,Cbir,Precision Recall,我在MATLAB中制作了一个CBIR系统,并使用相似性度量作为欧氏距离。 对每个查询图像使用此选项,我将检索前20个图像 我已经使用了用于测试我的系统。 它包含10个类(如非洲人、公共汽车、玫瑰等),每个类包含100张图片(总共1000张图片) 我的方法: 1.我使用相关图、共现矩阵(CCM)和像素扫描模式之间的差异(DBPSP)来构造向量(分别为64+196+28=288维) 每一个1000分贝的图像我有它的向量事先构造 现在出现了一个查询图像,我也构造了它的向量(又是228维) 我使用欧几里
它包含10个类(如非洲人、公共汽车、玫瑰等),每个类包含100张图片(总共1000张图片) 我的方法:
1.我使用相关图、共现矩阵(CCM)和像素扫描模式之间的差异(DBPSP)来构造向量(分别为64+196+28=288维)
A类召回--->卡滞???
PR曲线-->卡滞??有些链接说我需要一个分类器,有些则不是。。。我真的很困惑。正如您所说,您可以按如下方式计算精度
P = TP ./ ( TP + FP );
但是,您需要有FN或总错误数来计算召回率。因此,您需要找到一种方法来确定FN和FP数据。然后,您可以使用以下公式计算召回率
R = TP ./ ( TP + FN )
如果您有混淆矩阵或数据,可以使用我的自定义混淆Mat2F1.m计算精度、召回率和f1分数。这假设混淆矩阵的格式为how。每行的解释都是内联的。请让我知道,如果你想要更多的澄清
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 );
你有混淆矩阵还是只有TP/FP?只有TP和FP。在20张图像中,如果图像属于正确的类别,我会将TP增加1,如果不是,我会将FP增加1。如何检查图像的类别是否正确简单,如a类图像从0-99,B类图像从100-199,依此类推。一个简单的if-else循环给了我答案。好吧,我的解决方案不起作用了:(让我发布一个新的,关于FN或false的数量如何?你需要重新计算我如何计算FN和TN?我能做的唯一操作是拍摄一张图像并找到前20张图像,然后在20张图像中,如果图像属于正确的类别,我将TP增加1,如果不是,我将FP增加1。没有我们,我不能这样做吗ing分类器?如果否,您能建议在MATLAB中内置一些吗?对于FN,这些是分类为否的,但实际上是肯定的。对于TN,这些是分类为否的,实际上是否的。您需要6个变量中的4个(TN、FN、TP、FP、total true、total false)计算精度和召回率。您需要重写代码来解释其中一个变量,但我建议您创建一个混淆矩阵。这使分析更容易:)两者都不难。只要您知道类的分类以及基本事实(它应该是什么)是的,您可以将其输入到
confusionmat
函数中。同时,拥有类预测和类预期向量将使调试更加容易:我没有使用任何分类。我只是在查找queryImageVector和所有dbImageVector之间的欧几里德距离。至少我按降序对它们进行排序并检索前20名。是吗那我算不上回忆了?
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 );