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

📄 fisher.m

📁 基于Fisher线性判别的基因分类器的matlab源码
💻 M
字号:
clc;

x1=[29.7;17.1;13.5;39.6];
x2=[27.0;16.2;15.3;41.4];
x3=[27.0;21.6;6.3;45.0];
x4=[42.3;10.8;28.8;18.0];
x5=[23.4;23.4;9.9;43.2];
x6=[35.1;12.6;12.6;39.6];
x7=[35.1;9.9;18.9;36.0];
x8=[27.9;16.2;18.9;36.9];

x9=[35.5;4.5;50.0;10.0];
x10=[32.7;2.7;50.0;14.5];
x11=[25.5;10.0;5108;12.7];
x12=[30.0;8.2;50;11.8];
x13=[29.1;0.0;64.5;6.4];
x14=[36.4;8.2;46.4;9.1];
x15=[35.5;24.5;26.4;13.6];
x16=[29.1;11.8;50.0;9.1];

test1=[20.7;20.7;16.2;43.2];
test2=[18.2;27.3;13.6;40.9];
test3=[21.8;14.5;56.4;7.3];
test4=[20.0;17.3;56.4;7.3];
test5=[42.3;10.8;28.8;18.0];
test6=[36.4;8.2;46.4;9.1]
    m1=x1+x2+x3+x4+x5+x6+x7+x8;
    m1=m1/8;
    m2=x9+x10+x11+x12+x13+x14+x15+x16;
    m2=m2/8;
    S1=(x1-m1)*(x1-m1)'+(x2-m1)*(x2-m1)'+(x3-m1)*(x3-m1)'+(x4-m1)*(x4-m1)'+(x5-m1)*(x5-m1)'+(x6-m1)*(x6-m1)'+(x7-m1)*(x7-m1)'+(x8-m1)*(x8-m1)';
    S2=(x9-m2)*(x9-m2)'+(x10-m2)*(x10-m2)'+(x11-m2)*(x11-m2)'+(x12-m2)*(x12-m2)'+(x13-m2)*(x13-m2)'+(x14-m2)*(x14-m2)'+(x15-m2)*(x15-m2)'+(x16-m2)*(x16-m2)';  
    Sw=S1+S2;
    w=inv(Sw)*(m1-m2)
    Sb=(m1-m2)*(m1-m2)';

    y(1)=w'*x1;
    y(2)=w'*x2;
    y(3)=w'*x3;
    y(4)=w'*x4;
    y(5)=w'*x5;
    y(6)=w'*x6;
    y(7)=w'*x7;
    y(8)=w'*x8;
    y(9)=w'*x9;
    y(10)=w'*x10;
    y(11)=w'*x11;
    y(12)=w'*x12;
    y(13)=w'*x13;
    y(14)=w'*x14;
    y(15)=w'*x15;
    y(16)=w'*x16;
    for k=1:1:16
        if k<=8
            categ1(k)=y(k);
        end
        if k>8
            categ2(k-8)=y(k);
        end
    end
    m1bar=0;
    m2bar=0;
    for k=1:1:8
    m1bar=y(k)+m1bar;
    end
   for n=9:1:16
       m2bar=m2bar+y(n);
   end
   y0=(m1bar+m2bar)/16
    figure
    plot(1:1:8,categ1,'*');
    hold
    plot(1:1:8,categ2,'r+');
    plot([1,8],[y0,y0],'g-');
    title('对训练样本进行分类的结果');
    
    testresult(1)=w'*test1;
    testresult(2)=w'*test2;
    testresult(3)=w'*test3;
    testresult(4)=w'*test4;
    testresult(5)=w'*test5;
    testresult(6)=w'*test6;
    %plot(1:1:6,testresult,'*')
   
    a=10
    figure
    hold
    for k=1:1:6
        
        if testresult(k)>y0
            plot(k,testresult(k),'b*');
          
        else
            plot(k,testresult(k),'r+');
          
        end
    end
 %hold
   plot([1,6],[y0,y0],'g-');
    title('对测试样本的分类结果')
 
 
   
   

⌨️ 快捷键说明

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