全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习了EM的理论后想写一下练练手。在网上找到了混合高斯的R代码模拟数据是样本集5000个,前2000个是以3为均值,1为方差的高斯分布,后3000个是以-2为均值,2为方差的高斯分布。1. #模拟数据2. miu1-33. miu2-24. sigma1-15. sigma2-26. alpha1-0.47. alpha2-0.68. #生成两种高斯分布的样本9. n-500010. x-rep(0,n)11. n1-floor(n*alpha1)12. n2-n-n113. x1:n1-rnorm(n1)*sigma1+miu114. x(n1+1):n-rnorm(n2)*sigma2+miu215. hist(x,freq=F)16. lines(density(x),col=red)17. #设置初始值18. m-219. miu-runif(m)20. sigma-runif(m)21. alpha-c(0.2,0.8)22. prob-matrix(rep(0,n*m),ncol=m)23. #迭代24. for(stepin1:100)25. #E步,已知参数求概率26. for(jin1:m)27. prob,j-sapply(x,dnorm,miuj,sigmaj)28. 29. sumprob-rowSums(prob)30. prob-prob/sumprob#求出样本属于各类的概率31. 32. 33. oldmiu-miu34. oldsigma-sigma35. oldalpha-alpha36. 37. 38. #M步更新参数39. for(jin1:m)40. p1-sum(prob,j)41. p2-sum(prob,j*x)42. miuj-p2/p143. alphaj-p1/n44. p3-sum(prob,j*(x-miuj)2)45. sigmaj-sqrt(p3/p1)46. 47. 48. 49. #结束迭代的条件50. epsilo-1e-451. if(sum(abs(miu-oldmiu)epsilo&52. sum(abs(sigma-oldsigma)epsilo&53. sum(abs(alpha-oldalpha)epsilo)break54. cat(step,step,miu,miu,sigma,sigma,alpha,alpha,n)55. 56. 57. 有疑问的是在E步里面求样本属于各个类的概率的步骤,上面给出的代码是用P(Xi|z=j)/P(xi|zj)计算。但是在看理论的时候E步计算的应该是P(z=j|xi),也就是z=j的后验概率。用贝叶斯公式,后验概率可以从先验概率计算得到。(这玩意怎么编辑公式?只能截图了)其中P(x|z)是高斯分布的概率密度,P(z)就是代码中的alpha。于是我修改了一下上面代码中E步的prob参数计算的方法:1. for(jin1:m)2. prob,j-sapply(x,dnorm,miuj,sigmaj)3. 4. 5. for(iin(1:dim(prob)1)6. px-alpha%*%probi,7. probi,-(probi,*alpha)/px8. 这样计算的prob才是z=j的后验概率。分别贴出来修改前后的计算结果:修改前:step 35 miu 2. -2. sigma 1. 1. alpha 0. 0.到第35次迭代时收敛,得到的均值是2.,-2. (真实值是3,-2),方差1.,1.(真实值是1,2),alpha0.,0. (真实值0.4,0.6)。修改后的:step 57 miu -1. 3. sigma 2. 0. alpha 0. 0.到第57次迭代时收敛,得到的均值是3.,-1. (真实值是3,-2),方差0.,2.0384(真实值是1,2),alpha 0.3971,0.6029 (真实值0.4,0.6)。显然修改后的参数估计更接近实际值。其实如果alpha=(0.5,0.5)的话,修改后的计算公式就是等于修改前的。也就是说,如果每个类别的样本数相差不大的话,修改前的计算结果应该是接近修改后的,反之则不然。好了,下面开始喜闻乐见的实验时间。之前模拟数据一组是2000,一组3000个。两者相差不大,现在吧数量差距加大,一个1000,一个4000。为了使数据分得开,把sigma2调小了一点。1. miu1-32. miu2-23. sigma1-14. sigma2-1.55. alpha1-0.26. alpha2-0.87. #生成两种高斯分布的样本8. n-50009. x-rep(0,n)10. n1-floor(n*alpha1)11. n2-n-n112. x1:n1-rnorm(n1)*sigma1+miu113. x(n1+1):n-rnorm(n2)*sigma2+miu214. hist(x,freq=F)15. lines(density(x),col=red)然后计算,修改前的代码计算的结果:step 30 miu 0. -2. sigma 2. 1. alpha 0. 0.可以看到偏离真实值非常夸张,根本不可用了。修改后的结果呢:step 64 miu 2.95897 -1. sigma 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工图绘制教育培训试题及答案
- 2025年设计创意绘画考试题及答案
- 宁波市中医院儿童骨髓穿刺规范化操作考核
- 淄博市人民医院痛风性关节炎诊断与晶体识别考核
- 三明市中医院人力资源管理创新项目成果与效益评估
- 莆田市中医院细胞学教学能力考核
- 萍乡市中医院B超室急救技能考核
- 金华市中医院医保支付改革DRGDIP对护理的影响与对策
- 杭州市人民医院针灸推拿科副主任医师资格评审
- 南通市人民医院输血不良反应处理考核
- 2025年云南省公务员录用考试《行测》真题及答案
- 安徽省蚌埠市A层高中2025-2026学年高二上学期第一次联考(10月)英语试卷
- 淘宝交易流程
- 2025年西安法院聘用制书记员招聘(57人)考试参考题库及答案解析
- 2025年及未来5年中国高端照明灯具行业市场调查研究及发展战略规划报告
- 胸椎的解剖讲解
- 宿州市中石化2025秋招面试半结构化模拟题及答案炼油工艺技术岗
- Unit5MyhouseLesson1(课件)-剑桥国际少儿英语Kids'box预备级
- 2025中国融通资产管理集团有限公司子公司社会招聘笔试历年参考题库附带答案详解
- 2025年西南化工销售分公司秋季高校毕业生招聘5人笔试参考题库附带答案详解
- 2025-2030儿童绘本出版市场IP开发与跨界合作案例分析报告
评论
0/150
提交评论