我已经在matlab中训练了SVM,然后我将我的模型转移到OpenCV来检测汽车的后部。这是代码。
pos_mat = matfile('posfeat.mat'); % positive samples
neg_mat = matfile('negfeat.mat'); % negative samples
posRow = pos_mat.bigmat; % get positve samples
negRow = neg_mat.bigmatneg; % get negative samples
group = ones(135,1); % get labels
group(70:135) = -1;
t = 70;
for i =1:1:66
posRow(t,:) = (negRow(i,:));
t = t+1;
end
xdata = posRow;
SVMModel = fitcsvm(xdata,group);
beta = (SVMModel.Beta)';
这是输出。
现在我想计算SVM分类器的精度,召回率和准确度。这个post非常有用,但它只提供与精度,召回,准确性相关的概念。有人可以帮我计算SVM分类器的精度,召回率,准确度。你可以找到posfeat和negfeat here。
答案 0 :(得分:0)
根据
https://www.csie.ntu.edu.tw/~cjlin/libsvm/
此工具中包含的评估功能包括:
precision
Precision = true_positive / (true_positive + false_positive)
recall
Recall = true_positive / (true_positive + false_negative)
fscore
F-score = 2 * Precision * Recall / (Precision + Recall)
bac
BAC (Balanced ACcuracy) = (Sensitivity + Specificity) / 2,
where Sensitivity = true_positive / (true_positive + false_negative)
and Specificity = true_negative / (true_negative + false_positive)
auc
AUC (Area Under Curve) is the area under the ROC curve.
注意:此工具仅适用于标签为{1,-1}的二进制类C-SVM。不支持多级,回归和概率估计。 注意:使用精度作为评估标准时,交叉验证的准确性可能与标准LIBSVM的准确性不同。原因是LIBSVM内部将数据分组在同一个类中,而此工具则没有。