数据分析与机器学习学习笔记--贝叶斯算法

1.引言

       贝叶斯算法源自于概率论中的贝叶斯公式,首先我们了解一下贝叶斯公式的作用,概率论中分为正向概率与逆向概率

 

  • 正向概率:假设袋子里面有N个白球,M个黑球,求解你伸手进去摸一把,摸出黑球的概率是多大
  • 逆向概率:如果我们事先并不知道袋子里面黑白球的比例,而是闭着眼睛摸出一个(或好几个)球,观察这些取出来的球的颜色之后,求解此袋子里面的黑白球的比例

       对于上面正向概率我们显然会发现其摸出黑球的概率为M / (M + N),而对于逆向概率我们第一眼看上去并没有什么好的方法,此时就要轮到本篇介绍的贝叶斯公式出场了,贝叶斯公式主要就是解决逆向概率而产生的。

2.贝叶斯公式

       首先我们介绍一下几个基本的公式

 

  • 概率:数据分析与机器学习学习笔记--贝叶斯算法, 数据分析与机器学习学习笔记--贝叶斯算法
  • 条件概率:数据分析与机器学习学习笔记--贝叶斯算法
  • 全概率公式:数据分析与机器学习学习笔记--贝叶斯算法
  • 贝叶斯公式:数据分析与机器学习学习笔记--贝叶斯算法

       第一个公式是最为基本的概率公式,在贝叶斯公式中我们称之为先验概率;第二个就是贝叶斯中非常重要的条件概率,此公式的含义为在B发生的条件下A发生的概率,同时在贝叶斯中我们称之为A的后验概率;第三个为全概率公式也就是所有概率的和;最后一个为我们的贝叶斯公式,由于在一些条件下我们想要求B发生的条件下A发生的概率不太容易,我们将其转变为A的先验概率乘上B的后验概率在除以B的概率。

3.贝叶斯算法

       对于贝叶斯算法我们通过一个拼写检测例子实现进行解释,当我们从键盘输入一个错误单词,我们想要知道这个单词正确的情况下是什么,该算法的实现公式如下

 

  • P(我们猜测想输入的单词 | 实际输入单词)

       我们将输入的单词用字母D来表示,H1表示预测的可能输入单词1,H2为预测的单词2..........依此类推,由此该公式简化为P(H1 | D)、P(H2 | D)..........现在我们的目标有了,但是发现一个问题该公式不好求解,此时运用贝叶斯将公式变形P(H1 | D) = P(H1)P(D | H1)/P(D)、P(H2 | D) = P(H2)P(D | H2)/P(D),到了这一步你依旧会疑惑这个公式看起来依旧没有办法求解,接下来我们进一步化简,我们发现对每一个条件概率,我们最后都会除以一个相同的P(D),由于我们最终比较的是各条件概率的值并选取最大值并输出对应的单词,由此我们想到可以将P(D)约掉,所以我们得到数据分析与机器学习学习笔记--贝叶斯算法,在这个公式中P(H)可以通过统计每个单词在一篇文章中出现的次数计算获得,对于P(D | H)我们最简单的办法是计算D与H的距离(比如说我们输入D = tall,H = tell,那么我们的距离就为1其他的依此类推)。到此一个简单的拼写检测已经完成,在实际预测过程我们默认从距离为1开始,当距离为1的所有单词没有满足的单词时进入到距离为2的单词中选择,以上我们所说只是一个简单的拼写检测,在实际应用过程 中我们还要考虑用户的习惯,辅音元音的情况,键位之见距离等等许多的条件,此简单的拼写检测仅为帮助理解贝叶斯的实现过程。下放为实现代码:

数据分析与机器学习学习笔记--贝叶斯算法

4.总结

       贝叶斯算法在实际生活中的另一常见应用--垃圾邮件过滤系统,此模块的实现在此就不再详细说明,二者的实现方式大致相同,有兴趣的可以百度一下阅读相关教程,相比别人博客或论文中介绍的实现过程本人的介绍还是有一些瑕疵的,希望各位多多包含。

    数据分析与机器学习学习笔记--贝叶斯算法