python实现朴素贝叶斯分类器(数据挖掘算法系列之四)

By | 2016-12-16

关于贝叶斯公式

wiki:贝叶斯定理

其实简单来说就是一个公式而已

更一般化下,可以写成如下形式

贝叶斯决策准则

wiki:朴素贝叶斯分类器

特征向量X

P(X|Ci)是特征向量X在类别Ci状态下的条件概率,根据贝叶斯公式,后验概率P(Ci|X)的计算公式如下

贝叶斯决策准则为:如果对于任意i ≠ j,都有P(Ci|X) > P(Cj|X)成立,则样本模式X被判定为类别Ci

极大后验假设

设C为类别集合,也就是待选假设集合,在给定未知类别标号样本X时,通过计算找到可能性最大的假设c ∈ C,具有最大可能性的假设或类别被称为极大后验假设。同时,P(X)对于所有的类别标签都是一样的,所以可以看做常数。因为朴素贝叶斯分类器假设各属性之间互相独立,综上最终可得如下决策公式:

python实现

由训练样本训练模型,模型保存在dict中,且只记录频数

载入需要预测的数据后,把数据传到预测函数里面进行预测归类

朴素贝叶斯分类器比较简单,只是一个公式而已,实现起来基本没什么问题。

朴素贝叶斯有两个可以参考的优化

  1. 可考虑加入平滑防止P为0
  2. 可考虑取对数防止小数累乘趋于0

本次实现中没有加入以上优化,需要加入的话只需要修改小处。

完整代码在此,欢迎讨论学习。

发表评论

电子邮件地址不会被公开。