欢迎来到天天文库
浏览记录
ID:14896929
大小:62.50 KB
页数:30页
时间:2018-07-30
《现代模式识别 - read》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、现代模式识别-Read自己收集整理的错误在所难免仅供参考交流如有错误请指正!谢谢 现代模式识别 算法实现Parzen窗法原理: 在统计决策中需要知道类的概率密度p(x/wi)、类的概率密度P(wi)或后验概率P(wi/x)但在实际应用中这些知识往往是不知道或不完全知道的这就需要根据来自这一类的样本来确定它们用估计序列:(1) 来估计p(x)它与NV有关从理论上讲要使趋进p(x)就必须让其体积V近于零同时让N无穷大 Parzen窗法使区域序列的体积VN按N的某个函数随N的增大不断地缩小例如这时对和/N都要
2、加以适当的限制以使收敛于p(x) 在n维特征空间中我们取一n维超立方体区域其棱长为hN则其体积因此N个样本落入该立方体的样本数 将上式代入(1)式可得x点处概率密度估计: 其中(x)为满足下列两个条件的窗函数: ○1. ○2.容易知道条件○1保证非负条件○2保证 程序用到的四个窗函数:1.方窗函数:2.正态窗函数3.指数窗函数4.三角窗函数二、具体实现1.本方法是用matlab实现结果图如下 h1=0.25h1=1h1=4N=1 N=16 h1=0.25h1=1h1=4N
3、=256N=∞从图中结果可以看出样本量越大估计越精确同时在N较小时窗宽选择是否适当对估计结果有一定的影响当N较小时窗函数对估计结果影响较大其估计结果与真实分布相差较远;当N增大时估计结果与真实分布较为接近附matlab程序:%--------------------------------------------%parzen窗估计法%px为均值为零方差为1的一维正态分布%创函数选择为正态窗函数1/sqrt(2*pi)*exp(-u^2/2)%窗宽hN=h1/sqrt(N)%---------------------------
4、-----------------clearall;%预置参数N=1;h1=4;px=zeros(1,201);x=-2:0.02:2;fori=1:N;ran=randn(1,201);%产生N个正态分布样本forj=1:201;px(j)=px(j)+(sqrt(N)/(h1*sqrt(2*pi)))*exp((x(j)-ran(j))^2*N/(-2*h1*h1));end;end;semilogy(x,px/N);axis([-4,4,0.001,10.0]);2.用VC实现 doubleCParzenWnd::WndF
5、unc(vectoru) { vector::iteratorvi; doublelen=0.0; //首先判断维数是否正确 if(u.size()!=m_nDim) { exit(0); return-1; } //判断其和原点的距离利用二范数 for(vi=u.begin();vi!=u.end();vi++) { len+=(*vi)*(*vi); } if(sqrt(len)<=0.5) return1; else return0; } doubleCParzenWnd::Prob
6、ility(vectorx) { constdoubleVN=1.0; doublep=0.0; list>::iteratorli; //实现在x处的内插函数 for(li=m_listSample.begin();li!=m_listSample.end();li++) { p+=WndFunc(VecOperator(x,*li,1)); } returnp/m_listSample.size(); ISODATA算法的C++实现算法原理:略具体实现:创建一
7、个类classDef该类主要包含的参数为: float*centre;//类心; floatdj_mean;//类中的模式到类心的平均距离 intnj;//类内模式的个数; vectordeta_j;//类内距离的标准差矢量; vectormodls;//类中的模式; floatdetaj_max;//最大标准差; intpos_max;//最大标准差分量的位置;以及对参数的
8、处理函数:voidcmp_centre();//计算本类的中心 voidcmp_meandis();//计算类中模式到类心的平均距离voidcmp_deta();//计算类内距离的标准差矢量;程序实现时模式以矩阵形式获得将各个模式按算法原理分类并处理各
此文档下载收益归作者所有