资源描述:
《孙杨威_12281201_模式识别第4次试验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验报告学生姓名:孙杨威学号:12281201实验地点:九教北401实验时间:2014.10.30一、实验名称:概率密度函数估计(非参数方法)二、实验原理:非参数估计:设样本x落入区域R的概率Pp(x)为x的总体概率密度函数,若从概率密度函数为p(x)的总体中独立抽取N个样本x1,x2,…,xN,其中k个样本落入区域R的概率符合二项分布:以证明,下式是P的一个较好的估计设区域R足够小,其体积为V,为概率密度函数p(x)的估计,p(x)连续且在R上无变化,则:与样本数N、区域R的体积V、落入V中的样本数
2、k有关,它是的一个空间平均估计①当V固定的时候N增加,k也增加,当N→∞时,N→∞,此时P=k/N→1,只反映了P(x)的空间平均估计,而反映不出空间的变化②N固定,体积变小,当V→0时k=0时:k≠0时:所以起伏比较大,噪声比较大,需要对V进行改进.1.实验三:Parzen窗口估计:假设RN为一个d维的超立方体,hN为超立方体的长度∴超立方体体积为:,d=1,窗口为一线段d=2,窗口为一平面d=3,窗口为一立方体d>3,窗口为一超立方体∵ф(u)是以原点x为中心的超立方体。∴在xi落入方窗时,则有在
3、VN内为1不在VN内为0落入VN的样本数为所有为1者之和∴密度估计2.实验四:kN-近邻估计:KN近邻法的思想是以x为中心建立空舱,使v↑,直到捕捉到KN个样本为止,称KN-近邻估计v的改进,样本密度大,VN↓;样本密度小,VN↑;∴P(x)的估计为:一、实验内容:实验三:vMATLAB编程实现:利用Parzen窗法,估计单一正态分布和两个均匀分布v样本数N分别为1、16、256、(无穷大用一个比较大的数据代替)v窗口宽度分别为:0.25、1、4v画出实验结果图实验四:vMATLAB编程实现:利用,估
4、计单一正态分布和两个均匀分布v样本数N分别为1、16、256、(无穷大用一个比较大的数据代替)v近邻:v画出实验结果图单一正态分布:标准正态分布两个均与分布:混合概率密度函数一、实验步骤:Ø利用MATLAB编程实现实验一到四Ø得出实验结果及结果图Ø对得出的实验结果进行分析二、实验代码及分析:实验三:Parzen窗函数:functionp=Parzen(x,X,h1,N)%x为横坐标;X为样本;h1用来调节窗宽h;N为样本个数.h=h1/sqrt(N);%h为窗宽.sum=zeros(1,100);fo
5、ri=1:Nsum=sum+normpdf((x-X(i))/h,0,1);%用正态窗函数作Parzen窗估计end%normpdf:正态概率密度函数p=sum/(N*h);endParzen窗法估计单一正态分布:clc;closeall;clearall;M=128^2;%调整M的值可以改进精度x=linspace(-3,3,100);%功能:用于产生-3,3之间的100点行线性的矢量。X=randn(M,1)%产生标准正态分布figure;p=Parzen(x,X,0.25,1);subplot(
6、4,3,1);plot(x,p);title('N=1,h1=0.25');axis([-3,3,0,2]);gridon;p=Parzen(x,X,1,1);subplot(4,3,2);plot(x,p);title('N=1,h1=1');axis([-3,3,0,2]);gridon;p=Parzen(x,X,4,1);subplot(4,3,3);plot(x,p);title('N=1,h1=4');axis([-3,3,0,2]);gridon;p=Parzen(x,X,0.25,16)
7、;subplot(4,3,4);plot(x,p);title('N=16,h1=0.25');axis([-3,3,0,2]);gridon;p=Parzen(x,X,1,16);subplot(4,3,5);plot(x,p);title('N=16,h1=1');axis([-3,3,0,2]);gridon;p=Parzen(x,X,4,16);subplot(4,3,6);plot(x,p);title('N=16,h1=4');axis([-3,3,0,2]);gridon;p=Parze
8、n(x,X,0.25,256);subplot(4,3,7);plot(x,p);title('N=256,h1=0.25');axis([-3,3,0,2]);gridon;p=Parzen(x,X,1,256);subplot(4,3,8);plot(x,p);title('N=256,h1=1');axis([-3,3,0,2]);gridon;p=Parzen(x,X,4,256);subplot(4,3,9);plot(x,p);title('