📄 cpann_class_param.m
字号:
function class_param = cpann_class_param(class_calc,class)
% cpann_class_param calculates classification parameters
% (error rate, non-error rate, specificity, precision and sensitivity)
%
% class_param = cpann_class_param(class_calc,class);
%
% input:
% class class vector [1 x n]
% class_calc calculated class vector [1 x n]
%
% output:
% class_param structure containing confusion matrix, error rate, non-error rate,
% specificity, precision and sensitivity
%
% see the HTML HELP files (help.htm) for details
num_class = max(class);
nobj = size(class,1);
conf_mat = zeros(num_class,num_class+1);
for g = 1:num_class
in_class = find(class==g);
for k = 1:num_class
conf_mat(g,k) = length(find(class_calc(in_class) == k));
end
conf_mat(g,num_class + 1) = length(find(class_calc(in_class) == 0));
end
% error rates
ner = sum(diag(conf_mat(:,1:end-1)))/nobj;
not_ass = sum(conf_mat(:,end))/nobj;
er = 1 - ner - not_ass;
% sensitivity, specificity, precision
for g = 1:num_class
if sum(conf_mat(:,g)) > 0
precision(g) = conf_mat(g,g)/sum(conf_mat(:,g));
sensitivity(g) = conf_mat(g,g)/sum(conf_mat(g,:));
else
precision(g) = 0;
sensitivity(g) = 0;
end
in = ones(num_class,1); in(g) = 0;
red_mat = conf_mat(find(in),:);
specificity(g) = 0;
for k = 1:size(red_mat,2)
if k ~= g; specificity(g) = specificity(g) + sum(red_mat(:,k)); end;
end
if sum(sum(red_mat)) > 0
specificity(g) = specificity(g)/sum(sum(red_mat));
else
specificity(g) = 0;
end
end
class_param.conf_mat = conf_mat;
class_param.ner = ner;
class_param.er = er;
class_param.not_ass = not_ass;
class_param.precision = precision;
class_param.sensitivity = sensitivity;
class_param.specificity = specificity;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -