当前位置: 首页 > news >正文

做蓝牙app的网站新手开装修公司怎样做

做蓝牙app的网站,新手开装修公司怎样做,山西省建设工程网站,wordpress网站有多大导读热词前言#xff1a;前一篇文章大概说了EM算法的整个理解以及一些相关的公式神马的#xff0c;那些数学公式啥的看完真的是忘完了#xff0c;那就来用代码记忆记忆吧#xff01;接下来将会对python版本的EM算法进行一些分析。EM的python实现和解析引入问题(双硬币问题)…导读热词前言前一篇文章大概说了EM算法的整个理解以及一些相关的公式神马的那些数学公式啥的看完真的是忘完了那就来用代码记忆记忆吧接下来将会对python版本的EM算法进行一些分析。EM的python实现和解析引入问题(双硬币问题)假设有两枚硬币A、B以相同的概率随机选择一个硬币进行如下的抛硬币实验共做5次实验每次实验独立的抛十次结果如图中a所示例如某次实验产生了H、T、T、T、H、H、T、H、T、HH代表正面朝上。假设试验数据记录员可能是实习生业务不一定熟悉造成a和b两种情况a表示实习生记录了详细的试验数据我们可以观测到试验数据中每次选择的是A还是Bb表示实习生忘了记录每次试验选择的是A还是B我们无法观测实验数据中选择的硬币是哪个问在两种情况下分别如何估计两个硬币正面出现的概率以上的针对于b实习生的问题其实和三硬币问题类似只是这里把三硬币中第一个抛硬币的选择换成了实习生的选择。对于已知是A硬币还是B硬币抛出的结果的时候可以直接采用概率的求法来进行求解。对于含有隐变量的情况也就是不知道到底是A硬币抛出的结果还是B硬币抛出的结果的时候就需要采用EM算法进行求解了。如下图其中的EM算法的第一步就是初始化的过程然后根据这个参数得出应该产生的结果。构建观测数据集针对这个问题首先采集数据用1表示H(正面)0表示T(反面)#硬币投掷结果observations numpy.array([[1,1,1],[1,0],[0,1]])第一步参数的初始化参数赋初值第一个迭代的E步抛硬币是一个二项分布可以用scipy中的binom来计算。对于第一行数据正反面各有5次所以#二项分布求解公式contribution_A scipy.stats.binom.pmf(num_heads,len_observation,theta_A)contribution_B scipy.stats.binom.pmf(num_heads,theta_B)将两个概率正规化得到数据来自硬币AB的概率weight_A contribution_A / (contribution_A contribution_B)weight_B contribution_B / (contribution_A contribution_B)这个值类似于三硬币模型中的μ只不过多了一个下标代表是第几行数据(数据集由5行构成)。同理可以算出剩下的4行数据的μ。有了μ就可以估计数据中AB分别产生正反面的次数了。μ代表数据来自硬币A的概率的估计将它乘上正面的总数得到正面来自硬币A的总数同理有反面同理有B的正反面。#更新在当前参数下AB硬币产生的正反面次数counts[A][H] weight_A * num_headscounts[A][T] weight_A * num_tailscounts[B][H] weight_B * num_headscounts[B][T] weight_B * num_tails第一个迭代的M步当前模型参数下AB分别产生正反面的次数估计出来了就可以计算新的模型参数了new_theta_A counts[A][H]/(counts[A][H] counts[A][T])new_theta_B counts[B][H]/(counts[B][H] counts[B][T])于是就可以整理一下给出EM算法单个迭代的代码def em_single(priors,observations):EM算法的单次迭代Arguments------------priors:[theta_A,theta_B]observation:[m X n matrix]Returns---------------new_priors:[new_theta_A,new_theta_B]:param priors::param observations::return:counts {A: {H: 0,T: 0},B: {H: 0,T: 0}}theta_A priors[0]theta_B priors[1]#E stepfor observation in observations:len_observation len(observation)num_heads observation.sum()num_tails len_observation-num_heads#二项分布求解公式contribution_A scipy.stats.binom.pmf(num_heads,theta_A)contribution_B scipy.stats.binom.pmf(num_heads,theta_B)weight_A contribution_A / (contribution_A contribution_B)weight_B contribution_B / (contribution_A contribution_B)#更新在当前参数下AB硬币产生的正反面次数counts[A][H] weight_A * num_headscounts[A][T] weight_A * num_tailscounts[B][H] weight_B * num_headscounts[B][T] weight_B * num_tails# M stepnew_theta_A counts[A][H] / (counts[A][H] counts[A][T])new_theta_B counts[B][H] / (counts[B][H] counts[B][T])return [new_theta_A,new_theta_B]EM算法主循环给定循环的两个终止条件模型参数变化小于阈值循环达到最大次数就可以写出EM算法的主循环了def em(observations,prior,tol 1e-6,iterations10000):EM算法param observations :观测数据param prior模型初值param tol迭代结束阈值param iterations最大迭代次数return局部最优的模型参数iteration 0;while iteration iterations:new_prior em_single(prior,observations)delta_change numpy.abs(prior[0]-new_prior[0])if delta_change tol:breakelse:prior new_prioriteration 1return [new_prior,iteration]给定数据集和初值就可以调用EM算法了print em(observations,[0.6,0.5])得到[[0.72225028549925996,0.55543808993848298],36]我们可以改变初值试验初值对EM算法的影响。print em(observations,[0.5,0.6])结果[[0.55543727869042425,0.72225099139214621],37]看来EM算法还是很健壮的。如果把初值设为相等会怎样print em(observations,[0.3,0.3])输出[[0.64000000000000001,0.64000000000000001],1]显然两个值相加不为1的时候就会破坏这个EM函数。换一下初值print em(observations,[0.99999,0.00001])输出[[0.72225606292866507,0.55543145006184214],33]EM算法对于参数的改变还是有一定的健壮性的。以上是根据前人写的博客进行学习的~可以自己动手实现以下对于python练习还是有作用的。希望对大家的学习有所帮助也希望大家多多支持编程小技巧。相关文章总结如果觉得编程之家网站内容还不错欢迎将编程之家网站推荐给程序员好友。本图文内容来源于网友网络收集整理提供作为学习参考使用版权属于原作者。如您喜欢交流学习经验点击链接加入交流1群1065694478(已满)交流2群163560250
http://www.pierceye.com/news/212437/

相关文章:

  • 网站商城如何获取流量天合建设集团网站
  • 毕业设计做网站应该学什么2015年做哪个网站致富
  • 本地网站后台管理建设品牌网站建设解决方案
  • 广州黄埔区网站建设网页制作和网页制作设计
  • 做谷歌推广一定要网站吗成都 企业网站建设公司
  • 六安网站制作金狮网站更换域名备案吗
  • 最专业的手机网站制作广西网站建设设计
  • 如何在搜索引擎做网站企业咨询公司名字大全
  • 贵金属网站模板阿里云建设网站的流程
  • 维护一个网站要多少钱个人网页设计的主要内容和要求
  • 西安网站优化推广方案新网站做百度百科
  • 网站外链建设到底该怎么做flash网站案例
  • 成都私人网站制作卓越网站建设的优点
  • 做网站下载别人的图算不算侵权源码之家免费
  • 宁夏住房城乡建设厅网站应用网站建设
  • 宾馆网站建设网站建设管理规范
  • 内部网站建设的步骤过程选择邯郸做网站
  • 国外免费外贸网站dw网页制作教程个人网站
  • 西安建设局网站地址室内设计效果图一套方案
  • php 建网站电子商务网站建设项目规划书
  • 常熟建设局网站代理办营业执照的公司
  • 济南网站关键词优化公司如何制作网站赚钱
  • 长春旅游网站开发360投放广告怎么收费
  • 微信公众号做网站卖东西静态化网站的缺点
  • 网站空间购买今天的新闻头条最新消息
  • 网站制作教程图解怎么解压wordpress
  • 唐山市城市建设规划局网站腾讯云建设一个网站要多少钱
  • 邢台集团网站建设费用聚牛建设网站
  • 如何创建电子商务网站学校网站设计首页
  • 扬州建设投资集团网站世界总人口实时数据