vlambda博客
学习文章列表

了解一下丨朴素贝叶斯算法

要理解朴素贝叶斯,我们首先需要了解贝叶斯推断。贝叶斯推断是一种用贝叶斯定理来迭代假设概率的方法。贝叶斯定理是在掌握与相关事件的先决信息下,计算该事件的概率。


假设你想计算星期天下午5点得到一个停车位的概率。那么你如何计算这一事件的概率呢?是的,贝叶斯定理!


数学上贝叶斯定理写为:



这里"B"是一个条件,"A"是一个事件。在上面的例子"B"可以是"星期日"或"下午5点",因为这是影响结果“A”的两个条件:您是否会得到停车位。但是,如果您想要同时考虑这两个条件,那又会怎么样呢?这就是贝叶斯定理出现问题的地方。为了在同时考虑这两个条件时利用贝叶斯定理,我们必须做出一个假设。


假设:我所有的条件都应该是"有条件的而且独立的"。


我特别提到有条件的独立而不是相互独立一词, 因为有区别。条件独立性意味着结果值(无论您是否获得停车位)应解释条件之间的所有依赖性。例如:周日获得停车位,下午5点获得停车位并不是相互独立的。一个情况可能导致其他情况。如果是星期天, 下午5点停车的机会可能会减少。但是,如果我检查条件独立性, 两个功能依赖性是由结果属性, 即获得一个停车位解释。因此,我可以说,两者都是有条件的独立的。


朴素贝叶斯用贝叶斯定理来预测结果值,该值同时依赖于多个要素,因此必须遵循上述假设。这就是为什么它被称为朴素!


0 1
朴素贝叶斯的实际应用



在几乎所有的现实世界中,大多数特征都是相互依赖的。这将使朴素贝叶斯在现实生活中几乎不可能实现。那么它在哪里使用呢?您可能听说过文档检索系统、基于文本的情感分类器等任务是使用朴素贝叶斯算法的最佳应用场景。但为什么?这是因为我们从文档中提取的大多数单词是相互独立的。而且,朴素贝叶斯的工作很快,即使有很多功能和基于文本的分类器,你可以轻松获得超过40000–50000个独特的单词,这意味着40k-50k的特征!朴素贝叶斯如同闪电般快速的原因是它只计算概率,计算成本低廉。


0 2
朴素贝叶斯的一些要点



分母的重要性:与其他模型(如线性回归)相比,朴素贝叶斯对异常值的敏感度较低。这是分母的原因。


了解一下丨朴素贝叶斯算法


不要被这个公式吓倒。我们基本上是将单独计算的所有特征的概率相乘(因为假设它们相互独立),并将其代入Bayes公式。如果我们仔细观察,这个公式的分母总是保持不变的。尽管分母不是影响该方程输出的直接责任(因为它对所有特性都是相同的),但在计算过程中保留分母仍然被认为是一种良好的做法。分母基本上帮助离群值看起来更像非离群值。


朴素贝叶斯可生成模型:那里基于边界的模型可以分为生成型和判别型两种。


了解一下丨朴素贝叶斯算法


判别模型只是在不同的结果之间划出一条线。它不受功能的每个细节的影响。它只需要找到一系列的模式来帮助它区分这两种结果。而生成模型有一个更详细的方法。它研究每一个关于特性的细节来创建结果类。


零频问题/拉普拉斯平滑处理:大多数朴素贝叶斯的常见问题是零频率问题。让我们举个例子来理解这一点。假设我们的训练数据总是表明,每当使用“review”这个词时,它就是一封垃圾邮件。现在假设我收到一封来自Amazon的邮件,上面说“从另一个地方登录,回查一下这个活动记录”。现在根据我们的模式,这封邮件将被标记为垃圾邮件。这里的问题是我的训练数据没有这样的邮件“review”被标记为非垃圾邮件。这被称为零频率问题。由于不可能对每个特征都有平衡的数据集,所以我们需要使用其他解决方案。一个解决方案是引入一个非常小的常数参数,称为拉普拉斯平滑。拉普拉斯平滑从不允许0概率。它总是增加一个小的变量。这是scikit learn中名为alpha的超参数,可以调整。虽然这个问题的最佳解决方案是平衡我们的训练数据。



朴素贝叶斯可以处理失踪数据:在使用朴素贝叶斯时不用删除丢失的值。朴素贝叶斯在处理丢失的数据时非常智慧。它不试图预测缺失点的值,它只是跳过它!输出类由特定数据点的特征的剩余值确定。这是朴素贝叶斯最独特的一点。


0 3
Scikit-Learn库中朴素贝叶斯的类型



高斯朴素贝叶斯


计算概率时遵循数据的高斯分布。适用于一般的分类任务。


多项式朴素贝叶斯


概率是用多项式分布计算的。你可能听说过二项分布。多项式只是二项式的延伸。它在基于文本的分类器(如文档检索)中运行良好。


互补朴素贝叶斯


与多项式相反。多项式朴素贝叶斯尤其是在基于文本的分类器中被认为能产生更好的效果。


伯努利朴素贝叶斯


所有输入功能都应该是0或1。也就是说它只解释二进制数据。如果使用普通数据,算法首先将其转换为二进制数据。可用于基于文本的分类器,其中输入特征由0或1表示(即无论文档中是否存在单词)。


类朴素贝叶斯


所有的输入特征都应该按类别分布。如果给定连续特征,则首先使用分位数或其他技术将其划分为类别。适用于大多数分类特征都存在的数据。


0 4
结论



我希望这篇文章能够为你提供一些你可能瞟一眼就漏掉的关于朴素贝叶斯的启发。如果你喜欢这篇文章,我建议你多读一些这方面的研究文献。有许多研究论文,提供了一个全新的视角。朴素贝叶斯有时被证明是非常有效的,即使使用了相关联的特性,这是非常令人惊讶的。有一篇很好的研究论文,我觉得很有趣,可以参考一下。


朴素贝叶斯学习资源:https://www.youtube.com/watch?v=os-

NaA0ldGs&list=PLBv09BD7ez_6CxkuiFTbL3jsn2Qd1IU7B

(来源:https://medium.com/@mitultandon/na%C3%AFve-bayes-algorithm-3e6673bf85c5 编译:ODRobots )






赞和在看点这里