⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nec.m

📁 基于邻域的分类器(距离提供3种定义) 同时提供9个国际标准数据集
💻 M
字号:
%neighborhood classifiers, 
%training is training set, testing is test set, 
%D is paramater to select the  distance function, D=1 is mandistance; D=2 is 欧氏距离 D=3是 infinite norm
% T is used to control the size of neighborhood
function label=nec(training,testing,D,w)
[row, column]=size(training);
[row1, column1]=size(testing);
%数据标准化
Tr_m=min(training);
Tr_s=max(training);
Tr=[];
Te=[];
for i=1:(column-1)
    Tr_mi=(training(:,i)-Tr_m(i))/Tr_s(i);
    Te_mi=(testing(:,i)-Tr_m(i))/Tr_s(i);
    Tr=[Tr,Tr_mi];
    Te=[Te,Te_mi];
end
training=[Tr,training(:,column)];
testing=Te;

%计算测试集与训练集的距离
distance=[];
switch D
    case {1}
   for i=1:row1
        for j=1:row
            temp=[training(j,[1:(column-1)]);testing(i,:)]';
            d=mandist(temp);
            distance(i,j)=d(1,2);
        end
    end
    case {2}
        for i=1:row1
            for j=1:row
                temp=[training(j,[1:(column-1)]);testing(i,:)]';
                d=dist(temp);
                distance(i,j)=d(1,2);
            end
            dist_tp=[];
            dist_errand=(min(distance(i,:))+0.1*range(distance(i,:)))^2;
            dist_tp=1-exp((-1)*((distance(i,:)).^2)/(2*dist_errand));
            distance(i,:)=dist_tp;
        end
    case {3}
        for i=1:row1
            for j=1:row
                temp=[training(j,[1:(column-1)]);testing(i,:)];
                d=max(abs(temp(1,:)-temp(2,:)));
                distance(i,j)=d;
            end
        end
end
% 寻找邻域内样本
label=[];
for i=1:row1
    T=min(distance(i,:))+w*range(distance(i,:));
    [a,b]=find(distance(i,:)<=T);
    neighbors=b;
    neighbors_D=training(b,column);
    [x,y]=sort(neighbors_D);
    temp=find(diff(x)~=0);        
    nei_d=[x(1);x(temp+1)];
    Num_D=[];
    for j=1:length(nei_d)
        num=length(find(neighbors_D==nei_d(j)));
        Num_D=[Num_D,num];
    end
    [a,b]=max(Num_D);
    label(i)=nei_d(b);
end

⌨️ 快捷键说明

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