朴素贝叶斯 优点:在数据较少的情况下仍然有效,可以处理多类别问题。缺点:对于输入数据的准备方式较为敏感。适用数据类型:标称型数据。
朴素贝叶斯是贝叶斯决策理论的一部分,所以讲述朴素贝叶斯之前有必要快速了解一下贝叶斯决策理论。
假设现在我们有一个数据集,它由两类数据组成,数据分布如图4-1所示。
图4-1 两个参数已知的概率分布,参数决定了分布的形状
假设有位读者找到了描述图中两类数据的统计参数。(暂且不用管如何找到描述这类数据的统计参数,第10章会详细介绍。)我们现在用p1(x,y)
表示数据点(x,y)属于类别1(图中用圆点表示的类别)的概率, 用p2(x,y)
表示数据点(x,y)属于类别2(图中用三角形表示的类别)的概率,那么对于一个新数据点(x,y),可以用下面的规则来判断它的类别:
- 如果
p1(x,y) > p2(x,y)
,那么类别为1。 - 如果
p2(x,y) > p1(x,y)
,那么类别为2。
也就是说,我们会选择高概率对应的类别。这就是贝叶斯决策理论的核心思想,即选择具有最高概率的决策。回到图4-1,如果该图中的整个数据使用6个浮点数1来表示,并且计算类别概率的Python代码只有两行,那么你会更倾向于使用下面哪种方法来对该数据点进行分类?
整个数据由两类不同分布的数据构成,有可能只需要6个统计参数来描述。——译者注
- 使用第1章的kNN,进行1000次距离计算;
- 使用第2章的决策树,分别沿x轴、y轴划分数据;
- 计算数据点属于每个类别的概率,并进行比较。
使用决策树不会非常成功;而和简单的概率计算相比,kNN的计算量太大。因此,对于上述问题,最佳选择是使用刚才提到的概率比较方法。
接下来,我们必须要详述p1及p1概率计算方法。为了能够计算p1与p2,有必要讨论一下条件概率。如果你觉得自己已经相当了解条件概率了,那么可以直接跳过下一节。
贝叶斯?
这里使用的概率解释属于贝叶斯概率理论的范畴,该理论非常流行且效果良好。贝叶斯概率以18世纪的一位神学家托马斯·贝叶斯(Thomas Bayes)的名字命名。贝叶斯概率引入先验知识和逻辑推理来处理不确定命题。另一种概率解释称为频数概率(frequency probability),它只从数据本身获得结论,并不考虑逻辑推理及先验知识。