如何将fitcknn用于多个类?

时间:2018-09-27 11:39:48

标签: matlab image-processing classification knn

  

我正在研究面部表情识别。我做了一个数据集   包含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

% 问候 问候

0 个答案:

没有答案