Naive Bayes
文章目录
从贝叶斯定理到 naive bayes 分类器,最后说明一下其应用和优缺点。
在所有的机器学习分类算法中,朴素贝叶斯和其他绝大多数的分类算法都不同。对于大多数的分类算法,比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,也就是直接学习出特征输出
朴素贝叶斯
贝叶斯学派的思想可以概括为先验概率+数据=后验概率。也就是说我们在实际问题中需要得到的后验概率,可以通过先验概率和数据一起综合得到。先验概率就是我们对于数据所在领域的历史经验,但是这个经验常常难以量化或者模型化,于是贝叶斯学派大胆的假设先验分布的模型,比如正态分布,beta分布等。(因为在没有计算之前就认为数据服从某个分布,所以被称为先验概率)
贝叶斯公式:
- 先验概率
:先验概率是指根据以往经验和分析得到的概率。 - 后验概率
:事情已经发生,要求这件事情发生的原因是由某个因素引起的可能性的大小,后验分布 表示事件 已经发生的前提下,事件 发生的概率,叫做事件 发生下事件 的条件概率。(执果索因) - 后验概率
:在已知Y发生后X的条件概率,也由于知道 的取值而被称为 的后验概率 - 朴素:朴素贝叶斯算法是假设各个特征之间相互独立,也是朴素这词的意思那么贝叶斯公式中的
可写成:
全概率公式:
所以,将上面的式子整合起来,得到朴素贝叶斯公式:
三种常见的贝叶斯模型
上文提到了先验概率模型,这里主要介绍多项式模型(MultinomialNB)、高斯模型(GaussianNB)和伯努利模型(BernoulliNB)。
多项式模型(MultinomialNB)
多项式朴素贝叶斯常用语文本分类,特征是单词,值时单词出现的次数。多项式模型在计算先验概率
:样本数 :类别为 的样本数 :总的类别个数 :平滑值
:类别为 ,且特征为 的样本数 :特征 可以选择的数量
高斯模型(GaussianNB)
当特征是连续变量的时候,假设特征分布为正态分布,根据样本算出均值和方差,再求得概率。
可以参考这里.
** 伯努利模型(BernoulliNB)** 伯努利模型适用于离散特征的情况,伯努利模型中每个特征的取值只能是1和0。
可以参考这里
朴素贝叶斯分类的原理和流程
总体的公式:
- 设特征
, 其中 x 是一条数据, 是一个特征属性。 - 有类别信息
- 计算
- 如果
, 那么 .
所以现在的关键步骤是如何计算第 3 步骤中的各个条件概率。可以这样做,
- 找到一个已知分类的待分类项集合,这个集合叫做训练样本集。
- 统计得到在各类别下各个特征属性的条件概率估计
- 如果各个特征属性是条件独立的,则根据贝叶斯定理有如下推导
因为分母对于所有类别为常数,因为我们只要将分子最大化皆可。又因为各特征属性是条件独立的,所以有:
如果再计算过程中某个概率值为0,那么是可以考虑拉普拉斯平滑。两个概率计算公式,分子和分母都分别加上一个常数,就可以避免这个问题。
应用
朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,即认为此待分类项属于哪个类别。适用场景:
- 算法比较简单,在大样本下会有比较好的表现
- 对缺省数据不太敏感
- 具有支持增量式训练的能力(不借助于旧有训练数据,每一组新的训练数据都有可能引起概率值的变化,而如决策树和支持向量机,则需要我们一次性将整个数据集都传给它们。)对于一个如垃圾邮件过滤这样的应用程序而言,支持增量式训练的能力是非常重要的,因为过滤程序时常要对新到的邮件进行训练,然后必须即可进行相应的调整;更何况,过滤程序也未必有权限访问已经收到的所有邮件信息。
缺点:
- 不适合输入的向量有很强的特征关联的场景
- 无法处理基于特征值组合所产生的变化结果。例如:“在线”和“药店”分开出现时一般出现在正常邮件中,但当组合起来时“在线药店”却一般出现在垃圾邮件中,贝叶斯分类器无法理解这种特征组合。
它经常被用于文本分类中,包括互联网新闻的分类,垃圾邮件的筛选。
文章作者 jijeng
上次更新 2019-07-22