《模式识别与机器学习》由会员分享,可在线阅读,更多相关《模式识别与机器学习(13页珍藏版)》请在金锄头文库上搜索。
1、第三次作业一:设以下模式类别具有正态概率密度函数:3 1: (0 0)T, (2 0)T, (2 2)T, (0 2)T3 2: (4 4)T, (6 4)T, (6 6)T, (4 6)T(1) 设P(3 1)= P(3 2)=1/2,求这两类模式之间的贝叶斯判别界面的方程 式。(2) 绘出判别界面。答案:(1)模式的均值向量mi和协方差矩阵Ci可用下式估计:其中N其中Ni为类别3i中模式的数目,乂中模式的数目,xij代表在第i 个类别中的第j个模式。由上式可求出:町二1纯二(5I。u设因P(3 1)=P(3 2)=1/2,因C1=C2,则判别界面为:m 3 -如a)一(奶一 *登。垃一?神
2、。叫十:矶,以,=4-4,. + N4 = 0(2)作业二:编写两类正态分布模式的贝叶斯分类程序。程序代码:#includeusingnamespacestd;voidinverse_matrix(intT,double b55)for(int i=0;iT;i+)for(int j=0;j(2*T);j+)( if (jT)aij=bij;elseif (j=T+i)aij = 1.0;elseaij=0.0;for(int i=0;iT;i+)(for(int k=0;kT;k+)(if(k!=i)for (int j=0;j(2*T);j+)double x=aij*t;ak j=ak
3、j-x;for (int i=0:iT:i+)double t=aii:for (int j=0;j (2*T);j+)ai j=ai j/t;for (int i=0:iT:i+)voidget_matrix(intT,double result55,double a5)(for(int i=0;iT;i+)(for(int j=0;jT;j+)(resultij=ai*aj;voidmatrix_min(intT,double a55,int bb)(for(int i=0;iT;i+)(voidgetX(intT,double res5,double a5,double C55)(for
4、(int i=0;iT;i+)(double sum=0.0;for(int j=0;jTw1_numw2_num;for(int i=0;iw1_num;i+)(for(int j=0;jw1ij;m1j+=w1ij;for(int i=0;iw2_num;i+)(for(int j=0;jw2ij;m2j+=w2ij;for(int i=0;iw1_num;i+)m1i=m1i/w1_num;for(int i=0;iw2_num;i+)m2i=m2i/w2_num;for(int i=0;iw1_num;i+)(double res55,a5;for(int j=0;jT;j+)aj=w
5、1ij-m1j;get_matrix(T,res,a);for(int j=0;jT;j+)(for(int k=0;kT;k+)C1jk+=resjk;matrix_min(T,C1,w1_num);for(int i=0;iw2_num;i+)(double res55,a5;for(int j=0;jT;j+)aj=w2ij-m2j;get_matrix(T,res,a);for(int j=0;jT;j+)(for(int k=0;kT;k+)C2jk+=resjk;matrix_min(T,C2,w2_num);inverse_matrix(T,C1);inverse_matrix(
6、T,C2);double XX5 = 0,C_C15 = 0,C_C25 = 0;double m1_m25;for(int i=0;iT;i+)(m1_m2i=m1i-m2i;getX(T,XX,m1_m2,C1);getX(T,C_C1,m1,C1);getX(T,C_C2,m2,C1);doubleresultC=0.0;for(int i=0;iT;i+)resultC-=C_C1i*C_C1i;for(int i=0;iT;i+)resultC+=C_C2i*C_C2i;resultC二resultC/2;cout判别函数为:endl;coutd1(x)-d2(x)=;for(int i=0;iT;i+)coutXXix0)cout+resultCendl;elseif(resultC0)coutresultCendl;return 0;运行截图:其中N