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

📄 test_set.m

📁 采用Fisher线性分类方法
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%% Testing %%%%%%%%%%%%%%%%%%%%%%%%%%
function E=Test_Set(TestSet,Training)
% 计算各类错误率e1,e2 和总错误率e
X=TestSet.X';
E=[0,0;0,0;0,0;0,0];
for i=1:TestSet.n
    Y=TestSet.X';
    if TestSet.XinBie(i)==1
        plot(Y(1,i),Y(2,i),'r+');
        hold on;
    else
        plot(Y(1,i),Y(2,i),'b:p');
        hold on;
    end
end
for num=1:4 %根据四种不同的y取值,进行分类
    switch num
    case 1,
        y=Training.y1;
    case 2,
        y=Training.y2;
    case 3,
        y=Training.y3;    
    otherwise,
        y=Training.y4;    
    end
    for i=1:TestSet.n
        g=Training.W*X(:,i)-y;%判别函数
        Y_wrong=TestSet.X';
        if TestSet.XinBie(i)*g<0
            if TestSet.XinBie(i)==1
                E(num,1)=E(num,1)+1;%计算第1类被判错的错误率
                plot(Y_wrong(1,i),Y_wrong(2,i),'g:O');
                hold on;
            else
                E(num,2)=E(num,2)+1;%计算第2类被判错的错误率
                plot(Y_wrong(1,i),Y_wrong(2,i),'g:O');
                hold on;
            end
        end
    end
e1=E(num,1)/TestSet.n1;
e2=E(num,2)/TestSet.n2;
e=(E(num,1)+E(num,2))/TestSet.n;
fprintf('方法%d:第1类错误率=%.2f%%,第2类错误率=%.2f%%,总错误率=%.2f%%\n',num,e1*100,e2*100,e*100);
end

T=Training.W';
for i=145:0.1:185
%身高的投影直线
    plot(i,T(1)*i,'k-');
%体重的投影直线
    plot(i,T(2)*i,'m-.');
    hold on;
end
hold off;
%%%%%%%%%%%%%%%%%%%%%%%% Testing End %%%%%%%%%%%%%%%%%%%%%%%%

⌨️ 快捷键说明

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