Skip to content

Naive Bayes Classifier

1. Bayes' Thm.

P(Y=ck|X=x)=P(Y=ck,X=x)P(X=x)=P(X=x|Y=ck)P(Y=ck)P(X=x)

事件 X 是由原因 Y=ck 引起的概率。

2. Bayes Classifier

给定X(一个n维向量,每一维代表一个特征),判断它是类别集合Y中的哪一类。

那么就要选取一个类别 ckY ,使得 P(Y=ck|X=x) 最大

(下面用Y代表类别变量;X代表输入样本变量;y是预测的类别)

y=argmaxckP(Y=ck|X=x)=argmaxckP(X=x|Y=ck)P(Y=ck)P(X=x)=argmaxckP(X=x|Y=ck)P(Y=ck)

3. Naive Bayes Classifier

想求 P(X=x|Y=ck) ,但是参数太多,没法算,因为这相当于在给定类别的条件下,寻找恰好符合一组特征的样本。输入样本为n维向量,对应n个特征,每个特征又对应不同的取值,这就产生了一个n维的联合分布,空间是很大的。

因此做出「独立性假设」简化之:假设特征之间的取值相互独立!于是:

y=argmaxckP(X=x|Y=ck)P(Y=ck)=argmaxckP(Y=ck) j=1nP(X(j)=x(j)|Y=ck)

P(X(j)=x(j)|Y=ck) 表示类别为 ck 的所有的样本中,特征的第 j 维是 x(j) ,i.e. 输入样本第 j 个特征的值,的概率。

3.1 Laplace Smoothing

为了避免 P(X(j)=x(j)|Y=ck) 由于训练集覆盖不全面而为0,进而导致整个概率为0,加入 Laplace Smoothing 进行修正:

P(X(j)=x(j)|Y=ck)=Count(X(j)=x(j),Y=ck)+λCount(Y=ck)+Sjλ

Sj 为第 j 维对应特征的所有可能的取值的数目。

λ 通常取1。

本质上,就是对于第 j 维对应特征所有可能的取值情况,都加了个1,i.e. 保证第 j 维每种可能的取值都至少有1个样本。

4. Practice

给定:

  • 训练集;每个样本为 (x(1),x(2),,x(n),c) ,即具有 n 个特征的样本对应一个实际类别 c 。
  • 待预测样本 x ;需要求出预测类别 y 。

利用公式计算:

y=argmaxckP(Y=ck) j=1nP(X(j)=x(j)|Y=ck)=argmaxckCount(Y=ck)|Training Set| j=1nCount(X(j)=x(j),Y=ck)+λCount(Y=ck)+Sjλ
  • 需要代入每种 ck ,最后 y 取让后面的概率最大的 ck
  • 遍历 n 维特征算连乘

Last update: June 12, 2021
Authors: Co1lin (1.18%), Co1lin (1.18%), Colin (97.65%)