机器学习-朴素贝叶斯原理

朴素贝叶斯

我们的分类模型中有M个样本,每个样本有N维,输出的类别有C类。
样本例如 ( X 1 1 , X 2 1 , X 3 1 . . . X n 1 , Y 1 ) ( X 1 2 , X 2 , X 3 2 . . . X n 2 , Y 2 ) ,从样本中我们可以得到先验概率 P ( Y ) (K=1,2…C)及条件概率 P ( X | Y ) ,然后得到联合概率为: P ( X Y ) ,定义联合概率为

P ( X Y ) = P ( Y = C k ) P ( X = x | Y = C k ) = P ( Y = C k ) P ( X = ( x 1 , x 2 , . . . x n ) | Y = C k )

朴素贝叶斯假设

在这里我们假设X的n个维度之间互相独立,得到

P ( X = ( x 1 , x 2 , . . . x n ) | Y = C k ) = P ( X 1 = x 1 | Y = C k ) P ( X 2 = x 2 | Y = C k ) P ( X n = x n | Y = C k )

朴素贝叶斯原理

C r e s l u t = a r g m a x P ( Y | X ) = P ( X | Y ) P ( Y ) P ( X )

其中 P ( Y = C k ) 是类别在训练集中中出现的频数,及
P ( Y = C k ) = m c k m
其中 m c k 是类别K出现的次数。
上式中由于分母都一样都是 P ( X ) ,那么只要计算分子最大化即可。及
C r e s l u t = a r g m a x P ( Y | X ) = P ( X | Y ) P ( Y )
由于朴素贝叶斯的独立性,得到新的计算公式
C r e s l u t = a r g m a x P ( Y | X ) = P ( Y ) j = 1 n P ( X = x j | Y = C k )

对于 P ( X j = x j α | Y = C k ) ( j = 1 , 2 , 3... n ) ,对于输入样本的每一特征个数不同,我们这里默认每一个特征的选择都是是特征 α . 对于后验概率中需要后验的就是对于每一个特征的不同选择。
在这里对于每个特征的的不同输入值有三种计算方案:
- 如果该特征是离散值:
P ( X j = x j α | y = C k ) = x j α + λ m k + n λ

其中 λ 是拉普拉斯平滑参数
- 是稀疏的二项式离散值:
P ( X j = x j α | y = C k ) = P ( j | Y = C k ) X j α + ( 1 P ( j | Y = C k ) ) ( 1 X j α )

其中 X j α 取值为0,1。 P ( j | y = C K ) 为在类别为K是第j维特征出现的概率
- 该特征是连续值,认为 X j 在类别 C k 中为正态分布
P ( X j = x j α | y = C k ) = 1 2 π σ k 2 ( X j μ k ) 2 2 σ k 2

其中 σ k 2 是在样本 C k 中所有的可取值的方差, μ k 是在样本 C k 中所有可取值的均值(对于该样本的该特征我们的取值是 α x j α ,对于该特征值的取值为连续函数值)

算法过程

训练集m个样本,n个维度,输出类别有k类,每一个类别的个数有 m 1 , m 2 , . . . m k
- 计算类别的先验概率 P ( Y = C k ) = m k m
- 计算第k个类别的第j维特征取值为 α 时的条件概率 P ( X j α | Y = Y k ) 其中 α 是要求的样本的第j维特征的取值,这个是需要在后验中给出的。
- 由于贝叶斯假设性,我们可以得到

P ( X | Y ) = j = 1 n P ( X j | Y = C k )
那么对于输入样本X的分类 C r e s u l t 的结果是
C r e s u l t = a r g m a x j = 1 n P ( X j | Y = C k ) P ( Y = C k )

算法小结

  • 对于小规模数据表现良好,处理多分类问题
  • 对于缺失值不敏感,常用于文本分类
  • 但需要知道先验概率,而且是通过数据提供的后验数据(就是样本在每个特征上的取值)及先验决定分类,如果先验有问题(数据不平均差距很大)时有错误

猜你喜欢

转载自blog.csdn.net/qq_22235017/article/details/80927556