欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

模式识别作业5

程序员文章站 2022-05-20 19:34:05
...
clear;clc;
A = [0 2 2 0;0 0 2 2]; % 第一类模式
B = [4 6 6 4;4 4 6 6]; % 第二类模式
m1 = 1/size(A,2)*sum(A,2); % 均值矢量
m2 = 1/size(B,2)*sum(B,2);
C1 = 0;C2 = 0;
for i = 1:size(A,2)
    C1 = C1 + A(:,i)*A(:,i)';
    C2 = C2 + B(:,i)*B(:,i)';
end
C1 = 1/size(A,2)*C1-m1*m1'; % 协方差矩阵
C2 = 1/size(B,2)*C2-m2*m2';
p = 1/2; % 先验概率
syms x1 x2 real;
x = [x1;x2];
d1 = x'*inv(C1)*m1-1/2*m1'*inv(C1)*m1;
d2 = x'*inv(C2)*m2-1/2*m2'*inv(C2)*m2;
d = d1 - d2; % 判决界面
fprintf('两类模式之间的Bayes判别界面的方程为:%s=0\n',d);

结果:
模式识别作业5

clear;clc;
imshow('1.bmp'); % 公式推导
syms x1 x2 real;
x = [x1;x2];
u1 = [-1;0]; % 均值矢量
u2 = [1;0];
I = [1 0;0 1]; 
X1 = I;X2 = I; % 协方差矩阵
l = 1/2*(log(det(X1))-log(det(X2))+(x-u1)'*inv(X1)*(x-u1)-(x-u2)'*inv(X2)*(x-u2)); 
% 负对数似然比
l = simplify(l);
fprintf('1.如果%s<0,则判x∈w1,否则判x∈w2\n',l);
fprintf('即:如果x1<0,则判x∈w1,否则判x∈w2\n');
X1 = [1 1/2;1/2 1];
X2 = [1 -1/2;-1/2 1];
l = 1/2*(log(det(X1))-log(det(X2))+(x-u1)'*inv(X1)*(x-u1)-(x-u2)'*inv(X2)*(x-u2));
l = simplify(l);
fprintf('\n2.如果%s<0,则判x∈w1,否则判x∈w2\n',l);
fprintf('即:如果x1<0且x2<2,或x1>0且x2>2,则判x∈w1,否则判x∈w2\n');

结果:
模式识别作业5
模式识别作业5

相关标签: 模式识别