注意点: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.