注意點:MLKNN_train注釋部分有train_target - A QxM array, if the ith training instance belongs to the jth class, then train_target(j,i) equals +1, otherwise train_target(j,i) equals -1 。如果設置成1和0可以嗎?不行,因為MLKNN_test有如下代碼:
for i=1:num_testing
for j=1:num_class
if(Outputs(j,i)>=0.5)
Pre_Labels(j,i)=1;
else
Pre_Labels(j,i)=-1;
end
end
end
HammingLoss=Hamming_loss(Pre_Labels,test_target);
再看HammingLoss代碼,要比較Pre_Labels和test_target,Pre_Labels是1和-1,如果test_target 是1和0就會出錯
MLKNN_test程序中最后幾句 HammingLoss=Hamming_loss(Pre_Labels,test_target); RankingLoss=Ranking_loss(Outputs,test_target);OneError=One_error(Outputs,test_target);
Coverage=coverage(Outputs,test_target);Average_Precision=Average_precision(Outputs,test_target);HammingLoss是基于輸出標號和實際標號,其余均是基于輸出概率和實際標號
Understand completely the meaning and matlab code of
HammingLoss, the matlab code is very simple.