【十九】机器学习之路——朴素贝叶斯分类
来源:互联网 发布:java log日志打印 编辑:程序博客网 时间:2024/05/22 10:42
最近在看周志华《机器学习》的贝叶斯分类器这一章时觉得书上讲的很难理解,很多专业术语和符号搞的我头大,大学时候概率论我还是学的还是不错的,无奈网上搜了搜前辈的博客,看到一篇把朴素贝叶斯讲的很简单的文章,顿时豁然开朗。关于贝叶斯分类且听我慢慢道来:
贝叶斯定理
学习朴素贝叶斯分类器之前,先介绍下贝叶斯定理(来自百度):
贝叶斯定理由英国数学家贝叶斯 ( Thomas Bayes 1702-1761 ) 发展,用来描述两个条件概率之间的关系,比如 P(A|B) 和 P(B|A)。按照乘法法则,可以立刻导出:P(A∩B) = P(A)*P(B|A)=P(B)*P(A|B)。如上公式也可变形为:P(B|A) = P(A|B)*P(B) / P(A)。
上图可以很好的说明了贝叶斯的公式,P(A|B)就是在B事件已经发生的基础上,发生A的概率。同理,P(B|A)就是在A事件已经发生的基础上,发生B的概率。网上看到过一个很简单的贝叶斯概率的例子:
例如:一座别墅在过去的 20 年里一共发生过 2 次被盗,别墅的主人有一条狗,狗平均每周晚上叫 3 次,在盗贼入侵时狗叫的概率被估计为 0.9,问题是:在狗叫的时候发生入侵的概率是多少?
我们假设 A 事件为狗在晚上叫,B 为盗贼入侵,则以天为单位统计,P(A) = 3/7,P(B) = 2/(20*365) = 2/7300,P(A|B) = 0.9,按照公式很容易得出结果:P(B|A) = 0.9*(2/7300) / (3/7) = 0.00058
上述例子中:
- P(A)是A的先验概率或边缘概率。之所以称为”先验”是因为它不考虑任何B方面的因素。
- P(A|B)是已知B发生后A的条件概率,也由于得自B的取值而被称作A的后验概率。
- P(B|A)是已知A发生后B的条件概率,也由于得自A的取值而被称作B的后验概率。
- P(B)是B的先验概率或边缘概率,也作标准化常量(normalized constant)。
总结:
看完了以上的介绍,各位同学心里大概有点数了吧,其实贝叶斯分类器就是通过条件概率来进行分类的。举一个简单的例子,我们听到一段非常非常嗲的女生的声音,让你判断是A.志玲姐姐; B.门口吆喝卖大葱的大妈; C.女汉子同学;毫无疑问,我们都会选择A,因为我们知道志玲姐姐说话的声音很嗲,在这几个选项当中可能性最大。当然,有的同学就会说我那个女汉子同学平时私下说话超级超级嗲的,但是在没有这些可用信息的时候,我们选择志玲姐姐是概率最大的选项,这其实就是贝叶斯分类器的思想基础。
朴素贝叶斯分类器
关于朴素贝叶斯分类器的内容,推荐大家参考前辈阮一峰的博客——朴素贝叶斯分类器的应用,讲的浅显易懂,非常适合广大刚入门机器学习的小伙伴。
另外算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)
这篇博客介绍贝叶斯分类器内容较丰富一点,而且不难懂。相信大家看完这两篇博客就能够完全搞懂贝叶斯分类。简单总结一下朴素贝叶斯里三个重要的点:
主要原理
朴素贝叶斯分类的基本原理就是贝叶斯定理,简单来说我们现在手头有个需要分类的数据。这个数据的特征属性值为
- 需要计算
P(A|x1) 和P(B|x1) ,并进行大小比较确定分类结果。 - 根据贝叶斯定理,计算两种分类的条件概率:
P(A|x1)=P(A|a1,a2,...,am)=P(a1,a2,...,am|A)⋅P(A)P(a1,a2,...,am)=P(a1|A)⋅P(a2|A)⋅...⋅P(am|A)⋅P(A)P(a1)⋅P(a2)⋅...⋅P(am) P(B|x1)=P(B|a1,a2,...,am)=P(a1,a2,...,am|B)⋅P(B)P(a1,a2,...,am)=P(a1|B)⋅P(a2|B)⋅...⋅P(am|B)⋅P(B)P(a1)⋅P(a2)⋅...⋅P(am) - 根据计算结果,给出概率最大的分类结果。
特征属性为连续值的处理
在利用朴素贝叶斯进行分类时,需要计算各个划分的条件概率
只要计算出训练样本中各个类别中此特征项划分的各均值和标准差,代入上述公式即可得到需要的估计值。
条件概率P(a|A)=0的处理
当某个类别下某个特征项划分没有出现过一次时,就会导致
朴素贝叶斯分类的理论部分算是讲完了,时间不早了,下期说一说朴素贝叶斯的实战,主要在什么项目中会用到贝叶斯分类,以及代码实现。再见~
- 【十九】机器学习之路——朴素贝叶斯分类
- python机器学习之朴素贝叶斯分类
- 机器学习之朴素贝叶斯分类
- 机器学习之朴素贝叶斯分类
- 机器学习-分类算法之朴素贝叶斯
- 机器学习之朴素贝叶斯分类算法
- 机器学习之朴素贝叶斯分类器
- 机器学习之分类算法之朴素贝叶斯分类
- 【机器学习】文本分类——朴素贝叶斯Bayes
- 朴素贝叶斯分类器——机器学习
- 机器学习——朴素贝叶斯分类器
- 机器学习笔记(五)——朴素贝叶斯分类
- 《机器学习实战》——朴素贝叶斯分类
- 【机器学习算法模型】分类算法——朴素贝叶斯
- 机器学习—朴素贝叶斯进行文本分类
- 机器学习算法解析—朴素贝叶斯分类
- 机器学习算法(分类算法)—朴素贝叶斯
- 机器学习--朴素贝叶斯分类
- 程序员这个职业会是另一个即将破裂的泡沫?
- 剑指offer—正则表达式匹配
- 有关500强企业大数据
- anaconda下安装库出现UnsatisfiableError问题的解决办法
- springboot:如何优雅的使用mybatis
- 【十九】机器学习之路——朴素贝叶斯分类
- AI会让人类失业吗? 马云马化腾们不这么认为
- App数据分析到底要分析什么
- scan camera
- 提高代码可读性的10个技巧
- 设计模式(二十八)------23种设计模式(20):外观模式
- 如何一步步从数据产品菜鸟走到骨干数据产品
- 第七周实践项目4 队列数组
- jdk1.7 HashMap的实现原理