最后更新于
最后更新于
朴素贝叶斯方法是一系列的监督学习方法, 其中朴素(naive)的含义是假设特征之间是相互独立的. 给定类别和特征向量之后, 有:
根据朴素性, 即特征之间相互独立的性质, 有:
因此, 朴素贝叶斯通过下面的方法进行分类:
可以使用最大后验概率(Maximum A Posteriori, MAP)来对和进行估计.
各种朴素贝叶斯分类器之间的区别, 主要在于假设的的分布形式的不同.
尽管假设条件过于理想, 朴素贝叶斯分类器在显示中很多情况下的表现还是很不错的, 例如:
文档分类
垃圾邮件分类
等各种分类问题. 仅需要很少量的数据来训练模型的参数. 关于朴素贝叶斯表现良好的理论解释, 在中有详细的说明.
此外, 相对于其他模型, 朴素贝叶斯一个巨大的优点是训练速度超级快.
但尽管朴素贝叶斯模型是一个表现相当不错的分类器, 但又是一个相当糟糕的estimator
, 这里指的是它预测得到的每个类别的概率(predict_proba
)是很不可靠的, 没有多少参考价值.
此外, 为了消除长样本对于模型参数的较大影响, 使用如下的方法预测样本的分类结果:
由于它的训练过程与MNB类似, 只是特征值的不同, 因此如果时间允许, 最好使用两套特征分别训练MNB和BNB. 特别的, BNB适用于样本较短的情况(评论, 微博等情况).
对应于模型. 模型中, 关于特征的似然函数被假设为服从如下的高斯分布:
训练过程就是使用最大似然法估计分布参数和.
对应于模型. 适用于符合多项分布的数据. 多使用在text classification场景中, 例如特征是word counts或者tf-idf vectors. 假设有个特征, 对于每一个类, 特征向量的分布服从如下的参数向量. 其中即是, 即对于一个样本, 特征在类别出现的概率.
训练的过程即是评估参数的过程, 这里使用带有平滑的最大似然估计, 即参数由以下的方式得到:
其中是训练集中, 特征在类别中出现的次数, 是类别中所有特征出现的总次数.
加入平滑项防止在预测中, 某个特征永远不会出现的情况. 其中, 当时, 称为Laplace smoothing, 当时称为Lidstone smoothing.
是标准的multinomial naive Bayes(MNB)的一种变形. 特别适用于不平衡的数据集. CNB使用每个类别统计量的互补部分来计算模型的参数权重. 相对于MNB来说, CNB估计得到的参数更稳定, 因此在text classification任务中往往有由于MNB的表现. 模型的参数如下得到:
可以看到, 对于类别相关参数的计算, 是在所有非类的样本中加和计算得到的. 其中是样本中特征项的值, 可以是出现的次数统计或者tf-idf
的值. 而且此时的平滑项跟细致, 对于每个特征都有对应的平滑项.
样本被指认为补足量最小的类, 且与每个特征在该样本中的出现次数相关.
相关论文见: .
假设所有特征都是符合伯努利分布的, 即特征值是二值的. 如果使用在文本分类任务中, 对应的特征就是该单词是否在这个样本中出现过. 程序中如果传入的训练数据是非二值的, 模型也会自动地将其转换成二值类型.
由于是二值的, 因此有: