朴素贝叶斯分类器
本文首发于算法社区,转载请注明出处,谢谢。
定义
存在变量集 \(U=\left \{ U_{0},U_{1},...U_{n} \right \}\),其中 \(U_{i}=\left \{ A_{0},A_{1},...,A_{n},C \right \}\),为对象实例,\(A_{i}\) 为属性变量,\(C\) 为分类变量。
假定各属性变量独立的作用于分类变量,即各属性变量对分类变量的作用各自独立,这一假定称作类条件独立。这一假定为了简化计算,在此意义下称为“朴素”的。
工作过程
贝叶斯分类的工作过程如下:
1.每个数据样本用一个 n 维特征向量 \(X=\left ( x_{1},x_{2},...,x_{n} \right )\) 表示,分别描述该样本的 n 个属性\(A_{1},A_{2},...,A_{n}\)的度量值。
2.假定有 m 个类 \(C_{1},C_{2},...C_{n}\),给定一个未分类的数据样本\(X=\left ( x_{1},x_{2},...,x_{n} \right )\)(即没有类标号,但存在类变量),朴素贝叶斯分类将该数据样本分配给类\(C_{i}\),当且仅当\(P\left ( C_{i}|X \right ) > P\left ( C_{j}|X \right )\),\(1\le j\le m,j\ne i\)
根据贝叶斯定理\(P\left ( C_{i}|X \right ) =\frac{P\left ( X|C_{i} \right )P\left ( C_{i} \right ) }{P\left ( X \right ) }\),最大化\(P\left ( C_{i}|X \right )\) 即可对数据样本进行分类,\(P\left ( C_{i}|X \right )\) 最大的类\(C_{i}\)称为最大后验假定。
3.其中,\(P\left ( X \right )\) 代表属性集 \(\left ( A_{1},A_{2},...,A_{n} \right )\) 取值为 \(\left ( x_{1},x_{2},...,x_{n} \right )\) 的联合概率,为常数。所以最大化时只需对\(P\left ( X|C_{i} \right ) P\left ( C_{i} \right )\)最大化即可。类的先验概率(已知数据样本集中求概率)用\(P\left ( C_{i} \right ) = \frac{s_{i}}{s}\)计算,其中\(s_{i}\)是训练集中类\(C\)变量值为\(C_{i}\)的样本个数,而\(s\)是训练集中的样本总数。
4.给定具有许多属性的数据样本集,计算\(P\left ( X|C_{i} \right )\)的开销可能非常大。为降低计算\(P\left ( X|C_{i} \right )\)的开销,可以做类条件独立的朴素假设。给定样本的类标号\(C_{i}\)(即给出一个类变量的值\(C_{i}\),假定属性值相互条件独立,即在属性间不存在依赖关系。这样,
- 若\(A_{k}\)为离散属性,则\(P\left ( x_{k}|C_{i} \right ) = \frac{N\left ( A_{K}=x_{k},C=C_{i} \right ) }{N\left ( C=C_{i} \right ) }\),其中\(N\left ( C=C_{i} \right )\)为训练集中类变量值为\(C_{i}\)的样本个数,\(N\left ( A_{K}=x_{k},C=C_{i} \right )\)为训练集中类变量值为\(C_{i}\)且属性\(A_{k}\)值为\(x_{k}\)的样本个数。
- 若\(A_{k}\)为连续值属性,常用的处理方法有两种:一是对其离散化,然后按照离散值处理;另一种是假定这一属性服从某一分布,通常假定该属性服从高斯分布,因而有
其中\(x_{k}\)为训练集中所属\(C_{i}\)类的样本属性\(A_{k}\)的属性值,\(g\left ( x_{k},u_{c_{i}},\sigma_{c_{i}} \right )\)是属性\(A_{k}\)的高斯密度函数,而\(u_{c_{i}},\sigma_{c_{i}}\)分别为期望和标准差。
对未知所属类的样本分类,对每个类\(C_{i}\),计算\(P\left ( X|C_{i} \right ) P\left ( C_{i} \right )\)(上述4步算出来的),样本\(X\)被指派到类\(C_{i}\),当且仅当\(P\left ( X|C_{i} \right ) P\left ( C_{i} \right ) > P\left ( X|C_{j} \right ) P\left ( C_{j} \right ),1\le i,j\le m,j\ne i\),换言之,\(X\)被指派到其\(P\left ( X|C_{i} \right ) P\left ( C_{i} \right )\)最大的类\(C_{i}\).
经过以上步骤后,新样本分类完毕。
算法优点
朴素贝叶斯分类模型的优点:
- 算法逻辑简单,易于实现;
- 算法实施的时间、空间开销小;
- 算法性能稳定,对于不同特点的数据其分类性能差别不大,即模型的健壮性比较好。