朴素贝叶斯分类及R语言实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
垃圾邮件的条件概率:
非垃圾邮件的条件概率:
利用似然表中数据可得垃圾邮件的总似然:
非垃圾邮件的总似然:
因为0.012/0.002=6,所以认为该消息是垃圾邮件的可能性是非垃圾邮件可 能的6倍,即更有可能是垃圾邮件。
由于分母被忽视掉,所以还需在结果后除以分母: 垃圾邮件的概率=0.012/(0.012+0.002)=0.857 同样 非垃圾邮件的概率=0.002/(0.012+0.002) =0.143 2、拉普拉斯估计 将朴素贝叶斯应用于更复杂的问题前,有一些细微差别需要考虑。假设 我们收到另一条 消息,这次该消息包含所有4个单词:Viagra、Money、 Groceries和Unsubscribe。像之前一样使用贝叶斯算法,我们可以如下计算 垃圾邮件的似然: (4/20)ⅹ(10/20) ⅹ (0/20) ⅹ (12/20) ⅹ (20/100)=0 非垃圾邮件的似然为: (1/80) ⅹ (14/80) ⅹ (8/80) ⅹ (23/80) ⅹ (80/100) =0.00005 该消息是非垃圾邮件的概率为:0.00005/(0+0.00005)=1 这些结果表明该消息是垃圾邮件的概率为0,是非垃圾邮件的概率为100%。
优点 简单、快速、有效 缺点 依赖于一个常用的错误假设,即一样 的重要性和独立特征 应用在含有大量数值特征的数据集时 并不理想 概率的估计值相比预测的类儿言更不 可靠
能很好地处理噪声数据和缺失数据
需要用来训练的案例相对较少,但同 样能很好地处理大量的案例
很容易获得一个预测的估计概率值
似然
总计 20
垃圾邮 件
非垃圾 邮件 总计
1/80 5/95
79/80 95/100
14/80 34/100
66/80 76/100
8/80 8/100
71/80 91/100
23/80 35/10 0
57/80 65/10 0
80 100
设Viagra=Yes、Money=No、Groceries=No、Unsubscribe=Yes。
对于类的一个或多个水平,如果一个事件从来没有发生过,那么就有可能 出现这样的问题。例如,单词Groceries之前从来没有出现在垃圾邮件消息中, 因此,P(垃圾邮件|groceries)=0。 由于在朴素贝叶斯公式中,概率值是链式相乘的,所以概率为0的值将导 致垃圾邮件的后验概率为0,及单词Groceries能有效抵消或否定其他的证据。 即该邮件很有可能被预测为垃圾邮件,但是由于垃圾邮件中没有出现单词 Groceries就总是否决其他证据,并导致该邮件为垃圾邮件的概率为0。 这个问题的解决涉及使用一种叫做 拉普拉斯估计(Laplace estimator) 的方法,该方法是以法国数学家皮埃尔—西蒙斯—拉普拉斯(PierreSimon Laplce)的名字命名的。本质上,拉普拉斯估计是频率表中的每个 计数加上一个较小的数,这样就保证每类中的每一个特征发生的概率是非 零。 通常情况下,拉普拉斯估计中加上的数值设定为1,这样就保证每类—特 征组合至少在数据中出现一次。 下面观察拉普拉斯估计如何影响我们对消息的预测结果:
朴素贝叶斯分类及R语言实现
数学与科学学院 201721100219
统计学专业
唐容
朴素贝叶斯的理论基础
贝叶斯定理便是基于条件概率,通过P(A|B)来求P (B|A):
顺便提一下,上式中的分母P(A),可以根据全 概率公式分解为:
朴素贝叶斯的理论基础
分类过程如图所示:
似然
先验概率
后验概率
朴素贝叶斯分类: 除了对单词Viagra之外,还Biblioteka Baidu增加对Money、Groceries和Unsubscribe 的检测来改善垃圾邮件过滤器。
Viagra Yes 4/20 No 16/20 Money Yes 10/20 No 10/20 Groceries Yes 0/20 No 20/20 Unsubscribe Yes 12/20 No 8/20
第1步: 收集数据 第2步: 探索和准 备数据 第3步: 基于数据 训练模型 第4步: 评估模型 的性能 第5步: 提高模型 的性能
1、清理和标准化文本数据
2、将文本档拆分成词语 3、建立训练数据集和测试数据集 4、可视化文本数据——词云 5、为频繁出现的单词创建指示特征收
基本步骤
朴素贝叶斯算法的优缺点
取拉普拉斯值为:1给每个似然函数的分子加上1;给每个条件概率 分母加上分子中增加1的总数。 垃圾邮件的似然为: (5/24)ⅹ(11/24) ⅹ (1/24) ⅹ (13/24) ⅹ (20/24) =0.0004 非垃圾邮件的似然为: (2/84) ⅹ (15/84) ⅹ (9/84) ⅹ (24/84) ⅹ (80/100) =0.0001 这表明该消息是垃圾邮件的概率为80%,是非垃圾邮件的概率为20%,显然, 这个结果比由单词Groceries单独决定的结果更合理。 接下来看一个例子——基于贝叶斯算法的手机垃圾短信过滤
边际似然
似然表
Viagra
频率 垃圾邮件 非垃圾邮件 总计 Yes 4 1 5 No 16 79 95 总计 20 80 100
Viagra 似然 垃圾邮件 Yes 4/20 No 16/20 总计 20
非垃圾邮件
总计
1/80
5/100
79/80
95/100
80
100
P(Viagra|垃圾邮件)ⅹP(垃圾邮件)=(4/20)ⅹ(20/100)=0.04