Maximum Likelihood,ML
Posted qq_784583650
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maximum Likelihood,ML相关的知识,希望对你有一定的参考价值。
Maximum Likelihood,ML(最大似然估计)
1. 问题描述(属于监督学习,已知分类):
- 已知:训练样本已知分类的先验概率P(wi),以及各个分类的概率密度分布;
- 所求:ML做的事情是在已知分布的情况下进行参数估计;
2. ML要求说明:
- 基于贝叶斯决策P(wi|x)=(P(x|wi)*P(wi))/P(x);
- 似然函数定义:L(θ)=P(D|θ);
- ML所做的事情是估计参数θ,使得训练集合D在已知参数θ的情况下,似然函数最大化;
- ML的想法是这个参数θ是未知的确定的,出现在D可能性最大点;
- 使用前提假设:服从什么分布,以及这些分布是独立的;(使似然函数计算方便,连乘形式)
3. ML在已知类别分布为高斯分布的情形下的参数估计:
- 样本集合D服从高斯分布 D~N(μ,δ^2)
- 对似然函数进行偏微分,估计参数θ(μ,δ^2)
- μ = 样本均值(向量,多维高斯+);
- δ^2 = 样本协方差(矩阵,多维高斯);
4. ML举例
使用MATLAB生成两类数据及其分布:
<span style="font-size:14px;">Sample1 = [10-rand(1,121)*40;rand(1,121)*20]';
Sample2 = [rand(1,121)*20+20;rand(1,121)*10-20]';
figure,plot(Sample2(:,1),Sample2(:,2),'*r');
hold on;
plot(Sample1(:,1),Sample1(:,2),'*');
</span>
A类数据范围:[-30,10,0,20]
B类数据范围:[20,40,-20,-10]
5. 最大似然估计概率密度函数直观显示
<span style="font-size:14px;">u1=mean(Sample1);
u2=mean(Sample2);
sigm1=cov(Sample1);
sigm2=cov(Sample2);
%计算两个样本的密度函数并显示
x= -30:0.5:40;
y= -20:0.5:20;
[X,Y] = meshgrid(x,y);
F1 = mvnpdf([X(:),Y(:)],u1,sigm1);
F2 = mvnpdf([X(:),Y(:)],u2,sigm2);
P1=reshape(F1,size(X));
P2=reshape(F2,size(X));
figure(2)
surf(X,Y,P1)
hold on
surf(X,Y,P2)
shading interp
colorbar
title('条件概率密度函数曲线');</span>
6. 绘制分类面
<span style="font-size:14px;">%用于绘制分类面
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
pw1=0.5;pw2=0.5;
figure;
for x_x = 1:81
for y_y = 1:121
P1_1=pw1*mvnpdf([X(x_x,y_y),Y(x_x,y_y)],u1,sigm1);
P2_2=pw2*mvnpdf([X(x_x,y_y),Y(x_x,y_y)],u2,sigm2);
if(P1_1>P2_2)
%disp('it belong to the first class');
plot3(X(x_x,y_y),Y(x_x,y_y),P1_1,'r');
else
%disp('it belong to the second class');
plot3(X(x_x,y_y),Y(x_x,y_y),P2_2,'b');
end
hold all
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
注意:这里认为先验概率都为50%
7. 完整代码
<span style="font-size:14px;">clear;
close all
%求两类训练样本的均值和方差
Sample1 = [10-rand(1,121)*40;rand(1,121)*20]';
Sample2 = [rand(1,121)*20+20;rand(1,121)*10-20]';
u1=mean(Sample1);
u2=mean(Sample2);
sigm1=cov(Sample1);
sigm2=cov(Sample2);
%计算两个样本的密度函数并显示
x= -30:0.5:40;
y= -20:0.5:20;
[X,Y] = meshgrid(x,y);
F1 = mvnpdf([X(:),Y(:)],u1,sigm1);
F2 = mvnpdf([X(:),Y(:)],u2,sigm2);
P1=reshape(F1,size(X));
P2=reshape(F2,size(X));
figure(2)
surf(X,Y,P1)
hold on
surf(X,Y,P2)
shading interp
colorbar
title('条件概率密度函数曲线');
%用于绘制分类面
pw1=0.5;pw2=0.5;
figure;
for x_x = 1:81
for y_y = 1:121
P1_1=pw1*mvnpdf([X(x_x,y_y),Y(x_x,y_y)],u1,sigm1);
P2_2=pw2*mvnpdf([X(x_x,y_y),Y(x_x,y_y)],u2,sigm2);
if(P1_1>P2_2)
%disp('it belong to the first class');
plot3(X(x_x,y_y),Y(x_x,y_y),P1_1,'r');
else
%disp('it belong to the second class');
plot3(X(x_x,y_y),Y(x_x,y_y),P2_2,'b');
end
hold all
end
end
</span>
以上是关于Maximum Likelihood,ML的主要内容,如果未能解决你的问题,请参考以下文章
最大似然估计(Maximum likelihood estimation)(通过例子理解)
quasi-maximum likelihood decoder一种有效的PSK信号准最大似然译码器matlab性能仿真