04 数据挖掘之朴素贝叶斯算法
原文链接:04 数据挖掘之朴素贝叶斯算法
相关博客
前言
照例,数据挖掘迎来了第四次实践作业,此次内容是贝叶斯的一些算法,在学习课程的过程中,觉得这些算法对以后也许会有些许帮助,因此在此作为笔记记录。
贝叶斯
参考博客:Python3 实现朴素贝叶斯分类,朴素贝叶斯分类:原理
贝叶斯原理是英国数学家托马斯·贝叶斯提出的。贝叶斯是个很神奇的人,他的经历类似梵高。生前没有得到重视,死后,他写的一篇关于归纳推理的论文被朋友翻了出来,并发表了。这一发表不要紧,结果这篇论文的思想直接影响了接下来两个多世纪的统计学,是科学史上著名的论文之一。
首先引入一个概念:正向概率
。
正向概率:假设一个袋子里有10个白球和10个黑球,伸进手随机摸一个,摸出黑球的概率是多大呢?显然摸出黑球的概率是1/2,这就是正向概率问题。
但这种情况往往是上帝视角,即了解了事情的全貌再做判断。
与之对应的就是逆向概率问题
。在现实生活中,我们很难知道事情的全貌。贝叶斯则从实际场景出发,提了一个问题:如果我们事先不知道袋子里面黑球和白球的比例,而是通过我们摸出来的球的颜色,能判断出袋子里面黑白球的比例么?
逆向概率:事先我们不知道袋子里面黑球和白球的比例,而是通过我们摸出来的球的颜色,去判断出袋子里面黑白球的比例,这就是逆向概率问题。
实际上就是求在当前事件A发生的条件下,事件B发生的概率。
这里取出的球是黑球的概率是事件A,袋子里的黑球的比例是事件B,实际上所求的概率就是当已知取出黑球的概率的时候袋子里的黑球的比例,记作事件B∣A,也就是条件概率。
贝叶斯公式
先上几个公式,数学里应该学过,如果忘记了也没关系,有例子会帮助理解。
示例
已知某Play Tennis的训练样本集:
day | outlook | temperature | humidity | wind | Playtennis |
---|---|---|---|---|---|
1 | sunny | hot | high | weak | no |
2 | sunny | hot | high | strong | no |
3 | overcast | hot | high | weak | yes |
4 | rainy | mild | high | weak | yes |
5 | rainy | cool | normal | weak | yes |
6 | rainy | cool | normal | strong | no |
7 | overcast | cool | normal | strong | yes |
8 | sunny | mild | high | weak | no |
9 | sunny | cool | normal | weak | yes |
10 | rainy | mild | normal | weak | yes |
11 | sunny | mild | normal | strong | yes |
12 | overcast | mild | high | strong | yes |
13 | overcast | hot | normal | weak | yes |
14 | rainy | mild | high | strong | no |
求样本 X = <Outlook=Sunny, Temperature=Hot, Humidity=High, wind=Strong> 属于哪个分类(yes or no)
解:
设 每 个 类 的 类 别 事 件 为 C , 则 每 个 不 同 类 别 的 概 率 P ( C i ) 可 以 根 据 训 练 样 本 计 算 : 设每个类的类别事件为C,则每个不同类别的概率P(\mathop{
{C}}\nolimits_{
{i}})可以根据训练样本计算: 设每个类的类别事件为C,则每个不同类别的概率P(Ci)可以根据训练样本计算:
P(Playtennis="yes")=9/14=0.643
P(Playtennis="no")=5/14=0.357
为 计 算 P ( X ∣ C i ) , i = 1 , 2 , 则 需 要 先 计 算 下 面 的 条 件 概 率 : 为计算P(X|\mathop{ {C}}\nolimits_{ {i}}),i = 1,2,则需要先计算下面的条件概率: 为计算P(X∣C