MATLAB----贝叶斯最低风险分类器及Simlink矩阵乘法演示

286 篇文章 33 订阅
236 篇文章 15 订阅

在这里插入图片描述

% bayesleastrisk classifier
clear;
clc;
N=29;w=4;n=3;N1=4;N2=7;N3=8;N4=10;
A=[864.45 877.88 1418.79 1449.58
    1647.31 2031.66 1775.89 1641.58
    2665.9  3071.18  2772.9 3045.12]; % A belongs to w1
B=[2352.12 2297.28 2092.62 2205.36 2949.16 2802.88 2063.54
     2557.04 3340.14 3177.21 3243.74 3244.44 3017.11 3199.76
     1411.53 535.62 584.32 1202.69 662.42 1984.98 1257.21]; %B belongs to w2
C=[1739.94 1756.77 1803.58 1571.17 1845.59 1692.62 1680.67 1651.52
     1675.15 1652 1583.12 1731.04 1918.81 1867.5 1575.78 1713.28 
     2395.96 1514.98 2163.05 1735.33 2226.49 2108.97 1725.1 1570.38]; %C belongs to w3
 D=[373.3 222.85 401.3 363.34 104.8 499.85 172.78 341.59 291.02 237.63
      3087.05 3059.54 3259.94 3477.95 3389.83 3305.75 3084.49 3076.62 3095.68 3077.78
      2429.47 2002.33 2150.98 2462.86 2421.83 3196.22 2328.65 2438.63 2088.95 2251.96]; % D belongs to w4
  X1=mean(A')';X2=mean(B')';X3=mean(C')';X4=mean(D')';  % mean of training samples for each category 
  S1=cov(A');S2=cov(B');S3=cov(C');S4=cov(D'); % covariance matrix of training samples for each type
  S1_=inv(S1);S2_=inv(S2);S3_=inv(S3);S4_=inv(S4);% inverse matrix of training samples for each type
  S11=det(S1);S22=det(S2);S33=det(S3);S44=det(S4); %  determinant of convariance matrix
  Pw1=N1/N;Pw2=N2/N;Pw3=N3/N;Pw4=N4/N;%Priori probability
  sample=[1702.8	1639.79	2068.74
1877.93	1860.96	1975.3
867.81	2334.68	2535.1
1831.49	1713.11	1604.68
460.69	3274.77	2172.99
2374.98	3346.98	975.31
2271.89	3482.97	946.7
1783.64	1597.99	2261.31
198.83	3250.45	2445.08
1494.63	2072.59	2550.51
1597.03	1921.52	2126.76
1598.93	1921.08	1623.33
1243.13	1814.07	3441.07
2336.31	2640.26	1599.63
354	3300.12	2373.61
2144.47	2501.62	591.51
426.31	3105.29	2057.8
1507.13	1556.89	1954.51
343.07	3271.72	2036.94
2201.94	3196.22	935.53
2232.43	3077.87	1298.87
1580.1	1752.07	2463.04
1962.4	1594.97	1835.95
1495.18	1957.44	3498.02
1125.17	1594.39	2937.73
24.22	3447.31	2145.01
1269.07	1910.72	2701.97
1802.07	1725.81	1966.35
1817.36	1927.4	2328.79
1860.45	1782.88	1875.13];
% Posterior probability as the following
loss=ones(4)-diag(diag(ones(4))); %  define the riskloss function (4*4)
plot(loss); 
grid on;
xlabel('type');ylabel('Loss function value');
for k=1:30
P1=-1/2*(sample(k,:)'-X1)'*S1_*(sample(k,:)'-X1)+log(Pw1)-1/2*log(S11);
P2=-1/2*(sample(k,:)'-X2)'*S2_*(sample(k,:)'-X2)+log(Pw2)-1/2*log(S22);
P3=-1/2*(sample(k,:)'-X3)'*S3_*(sample(k,:)'-X3)+log(Pw3)-1/2*log(S33);
P4=-1/2*(sample(k,:)'-X4)'*S4_*(sample(k,:)'-X4)+log(Pw4)-1/2*log(S44);
risk1=loss(1,1)*P1+loss(1,2)*P2+loss(1,3)*P3+loss(1,4)*P4;
risk2=loss(2,1)*P1+loss(2,2)*P2+loss(2,3)*P3+loss(2,4)*P4;
risk3=loss(3,1)*P1+loss(3,2)*P2+loss(3,3)*P3+loss(3,4)*P4;
risk4=loss(4,1)*P1+loss(4,2)*P2+loss(4,3)*P3+loss(4,4)*P4;
risk=[risk1 risk2 risk3 risk4]
minriskloss=min(risk)  % find the least riskloss
% return the category of the least riskloss as following
  if risk1==min(risk)
    w=1
 elseif risk2== min(risk)
    w=2
  elseif  risk3==min(risk)
      w=3
  elseif risk4==min(risk)
    w=4    
  else
    return
     end
end
    ```
```javascript

risk =

   1.0e+02 *

  -2.255967283452204  -2.225860443242812  -2.436735799683170  -0.891875699647002


minriskloss =

    -2.436735799683170e+02


w =

     3


risk =

   1.0e+02 *

  -2.369281316245335  -2.544333278079410  -2.673770073003181  -1.007883504450508


minriskloss =

    -2.673770073003182e+02


w =

     3


risk =

   1.0e+02 *

  -1.916357489942021  -1.873309111232928  -1.183493290381152  -1.752053685193580


minriskloss =

    -1.916357489942021e+02


w =

     1


risk =

   1.0e+02 *

  -2.517845685883101  -2.766121175128239  -2.942995971644006  -1.172393274479106


minriskloss =

    -2.942995971644006e+02


w =

     3


risk =

   1.0e+02 *

  -3.067751395668974  -3.714747139791773  -1.698384350808622  -3.953303587065747


minriskloss =

    -3.953303587065747e+02


w =

     4


risk =

   1.0e+02 *

  -5.276450107761406  -8.313965298441612  -6.582358304088327  -5.350288164083108


minriskloss =

    -8.313965298441613e+02


w =

     2


risk =

   1.0e+02 *

  -5.161409319518603  -8.400497021954118  -6.627312783582543  -5.617077986218487


minriskloss =

    -8.400497021954118e+02


w =

     2


risk =

   1.0e+02 *

  -2.382211722858160  -2.291472527834302  -2.495309369615997  -0.843845289766312


minriskloss =

    -2.495309369615997e+02


w =

     3


risk =

   1.0e+02 *

  -3.841623426707195  -4.176880757634510  -1.521705556845256  -4.513319667718005


minriskloss =

    -4.513319667718005e+02


w =

     4


risk =

   1.0e+02 *

  -1.732142444803952  -1.710475119358147  -1.736851881450212  -0.906772394929794


minriskloss =

    -1.736851881450212e+02


w =

     3


risk =

   1.0e+02 *

  -1.902957524891354  -1.977363258080605  -2.108427493387132  -0.919974064796631


minriskloss =

    -2.108427493387132e+02


w =

     3


risk =

   1.0e+02 *

  -2.011544881534629  -2.335755567467047  -2.476003449909040  -1.179970628707555


minriskloss =

    -2.476003449909040e+02


w =

     3


risk =

   1.0e+02 *

  -2.198758948690314  -2.007781835934085  -1.735702898136685  -1.348556007387566


minriskloss =

    -2.198758948690314e+02


w =

     1


risk =

   1.0e+02 *

  -3.752065579989860  -5.053220082663882  -4.329654536089362  -2.641726045333716


minriskloss =

    -5.053220082663881e+02


w =

     2


risk =

   1.0e+02 *

  -3.420554237685331  -3.899419715269206  -1.595455694297732  -4.204419613144442


minriskloss =

    -4.204419613144441e+02


w =

     4


risk =

   1.0e+02 *

  -3.917322981701239  -6.021675894751988  -5.342673406120884  -3.533479526410862


minriskloss =

    -6.021675894751988e+02


w =

     2


risk =

   1.0e+02 *

  -2.928245217647648  -3.503598504269979  -1.584555359301118  -3.728587794618099


minriskloss =

    -3.728587794618098e+02


w =

     4


risk =

   1.0e+02 *

  -2.158336845698166  -2.086548612992898  -2.287516513618235  -0.971951503891919


minriskloss =

    -2.287516513618235e+02


w =

     3


risk =

   1.0e+02 *

  -3.313152836827271  -4.015729028150480  -1.763704099938040  -4.273639140559186


minriskloss =

    -4.273639140559185e+02


w =

     4


risk =

   1.0e+02 *

  -4.447721080019819  -7.188749454984142  -5.857638255005716  -4.645642351183894


minriskloss =

    -7.188749454984143e+02


w =

     2


risk =

   1.0e+02 *

  -4.045625289922070  -6.170008335707210  -5.070458849789965  -3.798982112094923


minriskloss =

    -6.170008335707209e+02


w =

     2


risk =

   1.0e+02 *

  -2.000039511014381  -1.885022770041016  -2.029286992260398  -0.820465034685959


minriskloss =

    -2.029286992260398e+02


w =

     3


risk =

   1.0e+02 *

  -2.803707861639855  -2.895207418728321  -3.052451018200896  -1.082436680132787


minriskloss =

    -3.052451018200896e+02


w =

     3


risk =

   1.0e+02 *

  -2.011284289217292  -1.857028924384156  -1.789540484253301  -1.058759136893093


minriskloss =

    -2.011284289217292e+02


w =

     1


risk =

   1.0e+02 *

  -2.296957910539657  -2.042459721335093  -1.767868903838478  -1.362208046990252


minriskloss =

    -2.296957910539657e+02


w =

     1


risk =

   1.0e+02 *

  -4.548835428423735  -5.187192898422070  -1.930543792348379  -5.512891038912102


minriskloss =

    -5.512891038912102e+02


w =

     4


risk =

   1.0e+02 *

  -1.826950956398675  -1.664208516452056  -1.561743173275072  -1.044474879754107


minriskloss =

    -1.826950956398675e+02


w =

     1


risk =

   1.0e+02 *

  -2.341142217131538  -2.417994984835905  -2.604340147925599  -0.951993003242713


minriskloss =

    -2.604340147925599e+02


w =

     3


risk =

   1.0e+02 *

  -2.143638842588062  -2.197679463882153  -2.327224702612299  -0.855927510251220


minriskloss =

    -2.327224702612299e+02


w =

     3


risk =

   1.0e+02 *

  -2.422519970903356  -2.589318273370350  -2.744652298033986  -1.031823167563322


minriskloss =

    -2.744652298033986e+02


w =

     3

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值