parzen.m

来自「这是一个模式识别中的parzen窗的一个简单仿真分类实例」· M 代码 · 共 52 行

M
52
字号
clear all;
load('E:\研究生课程\模式识别课程\homework1_1007\FEMALE.TXT');
load('E:\研究生课程\模式识别课程\homework1_1007\MALE.TXT');
fid=fopen('E:\研究生课程\模式识别课程\homework1_1007\test1.txt','r');   
test1=fscanf(fid,'%f %f %c',[3,inf]);
test=test1';
fclose(fid);
PrazenFemaleprok=zeros(2,50);
PrazenMaleprok = zeros(2,50);
PreFp=0.5;
PreMp=0.5;
Nerror=0;
errot=0;
figure;
for i=1:35
    for j=1:50
        PrazenFemaleprok(1,j)=1/sqrt(2*pi)*exp(-1/2*(test(i,1)-FEMALE(j,1))^2);
        PrazenMaleprok(1,j)=1/sqrt(2*pi)*exp(-1/2*(test(i,1)-MALE(j,1))^2);
    end;
    FemaleProk = sum(PrazenFemaleprok,2);
    MaleProk = sum(PrazenMaleprok,2);
    FemalePro = FemaleProk(1,1)/50;
    MalePro = MaleProk(1,1)/50;0.
    if(FemalePro *PreFp>MalePro*PreMp)        
         plot3(i,test(i,1),test(i,2),'k*'); 
        if(test(i,3)==109)
            Nerror=Nerror+1;
            
    
        end;
    else
        if(FemalePro *PreFp<MalePro*PreMp)
        plot3(i,test(i,1),test(i,2),'r+');
        if test(i,3)==102
        Nerror=Nerror+1;
      
        end;
        end;
    end;
hold on;
end;
title('非参数估计Parzen窗法');
xlabel('测试序号'),ylabel('身高(cm)'),zlabel('体重(kg)');
error = Nerror/35*100;
sprintf('%s %d %s %0.2f%s','分类错误个数:',Nerror,'分类错误率为:',error,'%')
         





⌨️ 快捷键说明

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