fcmknn.m

来自「matlab 源码 KNN classification」· M 代码 · 共 44 行

M
44
字号
% clear;
% ref_vect = [1 2 3 4 5; -1 0 -3 2 5] % reference vectors
% ref_label = [1 2 1 2 2] % labels of reference vectors
% query = [0 0]' % query point
% k = 3 % k-nearest

% return value : class label
function [rate, computed]=fcmknn(trdata, c, k, tedata)

%
% c prototype number
% k parameter of knn
%

[num,dim]=size(trdata);

ref_vect = [];
ref_label = [];

% for j=1:max(trdata(:,dim))
%     
% [center,U,obj_fcn] = fcm(trdata(find(trdata(:,dim)==j),1:dim-1),c);
% ref_vect =[ref_vect; center];
% ref_label = [ref_label ones(1,c)*j];
%     
% end

ref_vect = trdata(:,1:dim-1);
ref_label= trdata(:,dim);

[tnum,dim] = size(tedata);

computed =[];
ret=0;
for j=1:tnum
    query =tedata(j,1:dim-1);
    class = k_nn(query,ref_vect,ref_label,k);
    computed = [computed; class];
    if class==tedata(j,dim)
        ret=ret+1;
    end    
end

rate=ret/tnum;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?