注意點(diǎn):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  。如果設(shè)置成1和0可以嗎?不行,因?yàn)镸LKNN_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就會(huì)出錯(cuò)
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是基于輸出標(biāo)號(hào)和實(shí)際標(biāo)號(hào),其余均是基于輸出概率和實(shí)際標(biāo)號(hào)

Understand completely the meaning and matlab code of  HammingLoss, the matlab code is very simple.