朴素贝叶斯算法概述
简单的说,朴素贝叶斯算法是基于概率论的分类方法。有时候,使用概率进行分类比使用硬规则进行分类更为有效。
优点:在数据较少的情况下仍然有效,可以处理多类别问题。
缺点:对于输入数据的准备方式较为敏感。
适用数据类型:标称型数据。
入门案例
从一个例子开始讲起,你会看到朴素贝叶斯分类很好懂,一点都不难。
某个医院早上收了6个门诊病人,诊断结果如下表:
现在又来了第七个病人,是一个“打喷嚏的工人” ,请问他可能患了什么病?
解答上面的问题,应计算“打喷嚏的工人”患上各种疾病的概率,然后取概率最大的最为结论。怎么计算概率,就要用到“朴素贝叶斯”定理,其公式如下:(本文并不讨论怎么证明该公式)
P(A | B) = P(B | A) * P(A) / P(B)
其中,P(A | B)的解读为:B中出现A的概率。
根据该公式,我们先计算“打喷嚏的工人患感冒的概率”,如下:
P(感冒 | 打喷嚏的工人) = P(打喷嚏的工人 | 感冒) * P(感冒) / P(打喷嚏的工人)
根据上面的公式,我们仍然无法从统计数据中得到“P(打喷嚏的工人 | 感冒)”,即:感冒症状中,打喷嚏的工人的概率。但“朴素贝叶斯”假定特征之间是独立的,即:“打喷嚏”和“工人”这两个特征是独立的,那么上面的等式就变成了:
P(感冒 | 打喷嚏的工人)
= P(打喷嚏 | 感冒) * P(工人 | 感冒) * P(感冒) / P(打喷嚏) * P(工人)
= (2/3) * (1/3) * (3/6) / (3/6) * (2/6)
=0.66 * 0.33 * 0.5 / 0.5 * 0.33
=0.66
因此,这个打喷嚏的工人得了感冒的概率是66%。同理,可以计算这个病人患上过敏或脑震荡的概率。比较这几个概率,就可以知道他最可能得什么病。
工作原理
贝叶斯概率准则提供了一种利用已知概率来估算未知概率的有效方法,即:在统计资料的基础上,依据某些特征,计算各个分类的概率,取最大概率作为分类的依据。
可以通过特征之间的“条件独立性假设” ,降低对数据量以及计算复杂度的需求。什么是“条件独立性假设” ?如上面的例子“打喷嚏”和“工人”就确实是独立的特征,它们没有必然联系。但某些情况下并非如此,如:一个词出现在文章中的概率可能会受其它词的影响,但我们仍假设它并不依赖于其它词。虽然我们知道这个假设过于简单、乐观,但这就是之所以称为“朴素贝叶斯”的原因。尽管“条件独立性假设”并不完全准确,但是朴素贝叶斯仍然是一种有效的分类器。
一般流程
1.收集数据:可以使用任何方法;
2.准备数据:需要数值型或者布尔型数据;
3.分析数据:确保解析的正确性;
4.训练算法:计算不同的独立特征的条件概率;
5.测试算法:计算错误率;
6.使用算法:可以在任意的分类器场景中适用朴素贝叶斯分类器。
可使用场景
1.邮件分类,如拦截垃圾邮件;
2.新闻分类,如对爬来的网页内容归类;
……
网友评论