f-measure matlab

2279 ワード

supervised discrete hashingのevaluate_macroコード理解:メインプログラムで呼び出された場合evaluate_macroの前の入力パラメータはcateTrainTestであり,訓練サンプル数*試験サンプル数の行列である.evaluate_macro関数体では、テストサンプルごとにretrieved_relevant_numはTPを表す.relevant_numはTP+FNを表す.retrieved_numはTP+FPを表します.すべてのサンプルのそれぞれの平均precisionは最終的な出力precisionであり、すべてのサンプルのそれぞれの平均recallは最終的な出力recallである.
cat_apcal関数はMAPを計算するものであり、コードの意味はよく理解されている.例えば、距離順にソートすると、最初の7つは1、3、5、7がqueryと同じクラスである場合、MAP=(1+2/3+3/5+4/7)/4(This is is with discussing with Shu Zhang).しかしDeep hashing for compact(CVPR 2015)mean average
precision (mAP): which computes the area under the precision-recall curve.
matlab曲線の下でどのように面積を求めますか?
関数式が分かれば、quad関数を呼び出せばいいです.関数式がこの一連の離散点,x,yのみを知らない場合はtrapz(x,y)でよい
例1:本機HashingcodeITQdeletetest_cifar_PCA_ITQ_V01.m,描いたprecisonとrecall曲線に対して,曲線下の面積を計算し,trapz(recall,precision)でよい
Shu Zhang氏によると、以上の2つが等価かどうかは分からないが、Deep hashing for compact(CVPR 2015)で面積を計算すれば、誰のMAPが大きいのか、誰の曲線が上にあるのか、誰が大きいのかを直接見ることができるという.
http://www.mathworks.com/matlabcentral/fileexchange/37758-performance-measures-for-classification/content/Evaluate.m
function EVAL = Evaluate(ACTUAL,PREDICTED)
% This fucntion evaluates the performance of a classification model by 
% calculating the common performance measures: Accuracy, Sensitivity, 
% Specificity, Precision, Recall, F-Measure, G-mean.
% Input: ACTUAL = Column matrix with actual class labels of the training
%                 examples
%        PREDICTED = Column matrix with predicted class labels by the
%                    classification model
% Output: EVAL = Row matrix with all the performance measures


idx = (ACTUAL()==1);

p = length(ACTUAL(idx));
n = length(ACTUAL(~idx));
N = p+n;

tp = sum(ACTUAL(idx)==PREDICTED(idx));
tn = sum(ACTUAL(~idx)==PREDICTED(~idx));
fp = n-tn;
fn = p-tp;

tp_rate = tp/p;
tn_rate = tn/n;

accuracy = (tp+tn)/N;
sensitivity = tp_rate;
specificity = tn_rate;
precision = tp/(tp+fp);
recall = sensitivity;
f_measure = 2*((precision*recall)/(precision + recall));
gmean = sqrt(tp_rate*tn_rate);

EVAL = [accuracy sensitivity specificity precision recall f_measure gmean];