虽说这个函数命名是binary_classifier_accuracy,但是实际上并不会和multi_classifier有什么影响。
UFLDL和Machine Learning课程最大的不一样,我感觉就是表示的不一样,UFLDL是每一列一个样本,而Machine Learning是每一行一个样本。
首先就是theta’*x也就是每一列就是一个概率分布,表示是第几类。
由于matlab是列为主,所以通过max函数,最后参数设置为1,可以返回两个向量,一个是最大值,另一个是最大值所对应的下标。
correct就是对于正确的类别的数目求和。
accuracy就是算出正确率。
function accuracy=binary_classifier_accuracy(theta, X,y)
[~,labels] = max(theta'*X, [], 1);
correct=sum(y == labels);
accuracy = correct / length(y);