matlab实例:为匹配真实标签,对训练得到的标签进行调整-尊龙凯时
作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/
1. matlab程序
munkres.m
见:matlab实例:munkres指派算法
label_map.m
function [ new_label ] = label_map( label, gnd )
%为匹配真实标签,对标签重新调整
k = length(unique(gnd));
cost_mat = zeros(k,k);
for i=1:k
idx = find(label==i);
for j=1:k
cost_mat(i,j) = length(find(gnd(idx)~=j));
end
end
[assignment,cost] = munkres(cost_mat);
[assignedrows,dum]=find(assignment');
new_label = label;
for i=1:k
idx = find(label==i);
new_label(idx) = assignedrows(i);
end
2. 结果
>> label=[1 1 2 1 1 2 2 2 3 2 2 3 1 3 3 2 3];
>> gnd=[2 2 2 2 2 2 3 3 3 3 3 3 1 1 1 1 1 ];
>> [ new_label ] = label_map( label, gnd )
new_label =
2 2 3 2 2 3 3 3 1 3 3 1 2 1 1 3 1
3. 参考文献
[1] hua j, li c. distributed variational bayesian algorithms over sensor networks[j]. ieee transactions on signal processing, 2015, 64(3): 783-798.
[2] junhao hua. distributed variational bayesian algorithms. github, 2017.
[3] matlab实例:munkres指派算法
原文链接:http://www.cnblogs.com/kailugaji/p/11771226.html