利用最大似然估计方法估计参数

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_27914913/article/details/66973606

机器学习实验三,详情请参考《模式分类》第二版第三章课后上机练习3.2节

实验环境:

Matlab2016a

实验内容:

给定以下w1和w2的三维数据,考虑不同维数下的高斯概率密度模型:

这里写图片描述这里写图片描述

(a)编写程序,对表格中的类w1中的3个特征,分别求解最大似然估计。
(b)修改程序,处理二维数据的情形。然后处理对表格中的类w1中的任意两个特征的组合(3种可能)。
(c)修改程序,处理三维数据的情形。然后处理表格中类w1中3个特征的组合。
(d)假设这个三维高斯模型是可分离的,即,写一个程序估计类别w2中均值和协方差矩阵的三个参数。

实验步骤:

在课本(模式分类第二版第三章)中,通过将似然函数最大化,我们可以得到以下针对高斯分布下的最大似然估计:

这里写图片描述
这里写图片描述

我们可以直接利用这俩公式来求每个特征的最大似然估计。对于(a),分别三种一维情况:

load sample_ex3.mat;
x1=w1(:,1);x2=w1(:,2);x3=w1(:,3);
u1=mean(x1);sigma1=mean((x1-u1).^2);
u2=mean(x2);sigma2=mean((x2-u2).^2);
u3=mean(x3);sigma3=mean((x3-u3).^2);
fprintf('the mean and variance of feasure x1: %f ,%f \n',u1,sigma1);
fprintf('the mean and variance of feasure x2: %f ,%f \n',u2,sigma2);
fprintf('the mean and variance of feasure x3: %f ,%f \n',u3,sigma3);

运行结果如下:

这里写图片描述

对于(b),同样利用上述公式,只是情况变为二维:

load sample_ex3.mat;
x12=[w1(:,1) w1(:,2)];x13=[w1(:,1) w1(:,3)];x23=[w1(:,2) w1(:,3)];
u12=mean(x12',2);u13=mean(x13',2);u23=mean(x23',2);
sum12=0;sum13=0;sum23=0;
for i=1:size(u12,1)
    sum12=sum12+(x12(i,:)'-u12)*(x12(i,:)'-u12)';
end
for i=1:size(u13,1)
    sum13=sum13+(x13(i,:)'-u13)*(x13(i,:)'-u13)';
end
for i=1:size(u23,1)
    sum23=sum23+(x23(i,:)'-u23)*(x23(i,:)'-u23)';
end
sigma12=sum12/size(u12,1);
sigma13=sum13/size(u13,1);
sigma23=sum23/size(u23,1);
disp('the mean and covariance of feasure x1 and x2:');
disp(u12);disp(sigma12);
disp('the mean and covariance of feasure x1 and x3:');
disp(u13);disp(sigma13);
disp('the mean and covariance of feasure x2 and x3:');
disp(u23);disp(sigma23);

运行结果如下:

这里写图片描述

通过对比一维二维结果,发现一维均值是二维均值向量里的一个分量,方差却不是。并且二维协方差矩阵里对角的元素代表不同的特征。对于三维的情况(c),同理:

clear;
load sample_ex3.mat;
u=mean(w1',2);
sum=0;
for i=1:size(w1,1);
    sum=sum+(w1(i,:)'-u)*(w1(i,:)'-u)';
end
sigma=sum/size(w1,1);
disp('the mean and covariance of w1:');
disp(u);disp(sigma);

运行结果如下:

这里写图片描述

对比一维和三维情况,我们发现一维均值正好对应三维均值里每一个分量,一维方差对应三维协方差矩阵中的对角元素。对于(d),由于这个三维模型是可分离的,也就是各个特征之间互相独立不会影响因此它的协方差矩阵是个对角矩阵,对角元素即为各个特征的方差。我们可以直接求取:

load sample_ex3.mat;
x1=w2(:,1);x2=w2(:,2);x3=w2(:,3);
u1=mean(x1);sigma1=mean((x1-u1).^2);
u2=mean(x2);sigma2=mean((x2-u2).^2);
u3=mean(x3);sigma3=mean((x3-u3).^2);
u=[u1;u2;u3];
sigma=[sigma1,0,0;0,sigma2,0;0,0,sigma3];
disp('the mean and covariance of w2:');
disp(u);disp(sigma);

结果如下:

这里写图片描述

分析与体会:

通过对比一维二维结果,发现一维均值是二维均值向量里的一个分量,方差却不是。并且二维协方差矩阵里对角的元素代表不同的特征。对比一维和三维情况,我们发现一维均值正好对应三维均值里每一个分量,一维方差对应三维协方差矩阵中的对角元素。

展开阅读全文

没有更多推荐了,返回首页