MATLAB實例:爲匹配真實標籤,對訓練獲得的標籤進行調整

MATLAB實例:爲匹配真實標籤,對訓練獲得的標籤進行調整

做者:凱魯嘎吉 - 博客園 http://www.cnblogs.com/kailugaji/html

1. MATLAB程序

munkres.m

見:MATLAB實例:Munkres指派算法git

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.github

[2] Junhao Hua. Distributed Variational Bayesian Algorithms. Github, 2017.算法

[3] MATLAB實例:Munkres指派算法post

相關文章
相關標籤/搜索