我遵循了具有 10 倍交叉验证的 MATLAB KNN 分类器的示例,我在计算模型性能的阶段迷失了方向,请查看我下面的代码,并就如何正确获得百分比分类的准确性提出建议( %),我没有得到 cVError = 1-mean(errorMat) 部分。其次,fitcknn 和 knn.predict 函数用于训练和测试模型,我需要帮助我如何创建自己的函数来完成相同的任务。谢谢你。
indices = crossvalind('kfold',labels,10);
confusionMatrix = cell(1,1);
errorMat = zeros(1,10);
for i = 1:10
test = (indices==i);
train = ~test;
knn = fitcknn(data(train,:),labels(train),'NumNeighbors',kVal);
y = knn.predict(data(test,:));
index = cellfun(@strcmp,y,labels(test));
errorMat(i) = sum(index)/length(y);
confusionMatrix{i} = confusionmat(labels(test),y);
end
% Calculate misclassification error
cvError = 1-mean(errorMat);