本文主要是介绍理解与推导贝叶斯滤波算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
很多时候一些算法看起来极其复杂,极其难懂,不是因为我们愚不可及,而是因为我们看到的是别人省略过很多步骤和脑海中思考过的思路最后呈现出来的公式和文字,而好的博客就应该尽量还原这些思考过程及省略掉的步骤。
像卡尔曼滤波(Kalman filters)、粒子滤波(Particle filters)、隐马尔科夫模型(Hidden Markov models),动态贝叶斯网络(Dynamic Bayesian networks)等等算法,这些算法都和贝叶斯滤波算法非常相似,因此学好了贝叶斯滤波再学其他算法就容易很多了。
贝叶斯滤波算法到底有什么用?
贝叶斯滤波算法的工作就是根据已有的信息来计算概率。比如我想根据一些信息来识别某个人性别是不是女,那贝叶斯要做的就是根据这些信息计算这个人是女的概率P(女|信息)。贝叶斯最终的输出是计算根据现有信息判断这个人是男性的概率是多少,女性的概率是多少,然后你的算法就选择概率更大的那种情况输出结果。
当你什么信息都不提供给贝叶斯的时候,然后你问贝叶斯那个人的性别是女的概率是多少,贝叶斯会告诉你P(女)=0.5。现在P(女)=P(男)=0.5我们没法判断性别。这个数值0.5是我们设置的一个初始值,一般是需要根据你的统计经验设置的(如果想用贝叶斯进行垃圾邮件识别,那么它是垃圾邮件的概率肯定不会有0.5那么大,比较垃圾邮件还是少数,你需要统计收到的邮件中垃圾邮件的占比,然后作为算法的初始值,好让算法在没有任何提示信息的情况下能输出当前邮件是垃圾邮件的概率)。
回到性别识别的问题,当你告诉贝叶
这篇关于理解与推导贝叶斯滤波算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!