我正在研究面部表情识别。我做了一个数据集 包含213张图像的特征和类。
步骤1:我的数据集的每一行代表1张图片的特征。所以 213张图片213行 步骤2:最后一栏代表课程 喜欢; 1,2,3,4,5,6,7我使用fitcsvm它给出了很好的结果,但现在我 想要使用knn。
问题
1-如何使用fitcknn或任何knn分类器进行分类
2-以及交叉验证
3-并找到精度,精度和召回率
使用此代码帮助我
clc;
close all;
data = load(fullfile('.', 'Features', 'jaffe_features.txt'));
% features_train = data(1:128,:);
% features_test = data(128:end,:);
nRows = size(data,1);
randRows = randperm(nRows); % generate random ordering of row indices
features = data(randRows(1:end),:);
labels1 = data(:,end);
[labels] = labels1;
Mdl = fitcknn(features,labels,'NumNeighbors',5,...
'ClassNames',{'1','2','3','4','5','6','7'},'Distance','euclidean', 'Standardize',1);
loss = resubLoss(Mdl);
CVMdl = crossval(Mdl);
classError = kfoldLoss(CVMdl);
label = predict(Mdl,features);
% plot confusion(features_test,idx)
% oofLabel = kfoldPredict(CVMdl);
% ConfMat = confusionmat(labels_test,label);
accuracy=confusionmatStats_2(labels_test,label);
% [m,n]=size(label);
%
% count=0;
% for i=1:m
% if(strcmp(labels_test(i),label(i)))
% count=count+1;
% end
% end
% 问候 问候