统计学习笔记之朴素贝叶斯

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26564783/article/details/82219205

简介

如果说前面笔记中所介绍的方法跟统计没什么明显联系的话,那么这里介绍的朴素贝叶斯就纯粹在用基于统计的方法解决问题。首先朴素贝叶斯是基于贝叶斯特征条件独立假设分类方法。通过特征条件独立假设来学习输入/输出的联合分布(P(x,y)),同时根据贝叶斯定理预测给定输入x的后验概率(P(y|x))最大的输出y。

一、贝叶斯分类方法

对应到工程上,给定一个数据集,我们先学习先验和条件概率,即

                                                                              P(Y=c_{k})                                                                                 (1)

                                                P(X=x|Y=c_{k})=P(X^{(1)}=x^{(1)},\cdots, X^{(n)}=x^{(n)} |Y=c_{k}))                          (2)

因此可以得到联合概率P(X,Y).同时根据条件独立假设,即:

                                            P(X=x|Y=c_{k})=P(X^{(1)}=x^{(1)},\cdots, X^{(n)}=x^{(n)} |Y=c_{k}))

                                            =\prod _{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_{k})                                                                                     (3)

实际这个过程最后学到的是生成数据机制(生成模型),然后计算后验概率

                                         P(Y|X) = \frac{P(Y)P(X|Y)}{ P(X)}= \frac{P(Y)P(X|Y)}{\sum_{k} P(X=x|Y=c_{k})P(Y=c_{k}])}                               (4)

将(3)带入(4)式:

                                         P(Y=c_{k}|X=x) = \frac{P(Y=c_{k})\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_{k})}{ \sum_{k} P(Y=c_{k})\prod _{j}P(X^{(j)}=x^{(j)}|Y=c_{k})}                                (5)

因此贝叶斯分类则根据上述求得概率最大的Y即为最终分类结果:

                                        y = f(x) = argmax_{c_{k}}\frac{P(Y=c_{k})\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_{k})}{ \sum_{k} P(Y=c_{k})\prod _{j}P(X^{(j)}=x^{(j)}|Y=c_{k})}                                (6)

注意,无论求Y取何值时的概率,分母都是相同的(P(x))所以实际也相当于:

                                       y = f(x) = argmax_{c_{k}}P(Y=c_{k})\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_{k})                                          (7)

二、朴素贝叶斯法的参数估计

对应到工程上, 先验如何计算(极大似然估计):

                                                           P(Y=c_{k}) = \frac{ \sum_{i=1}^{N} I(y_{i}=c_{k}) }{N}                                                                         (8)

                                                          P(X^{(j)}=a_{jl}|Y=c_{k}) = \frac{ \sum_{i=1}^{N}I(x_{i}^{(j)}=a_{jl},y_{i}=c_{k}) }{\sum_{i=1}^{N} I(y_{i}=c_{k})}                                      (9)

其中,I即指示函数,其实就是特征函数,再白话一点就是真为1,假为0,这下完全明白了吧,就是统计当Y等于c_{k}的比例,也就是概率。同理,条件概率也是类似基于统计比例近似算作条件概率, a_{jl}表示x的第j维特征取到的值为l。当然,数据太少时,我们心知肚明,这样的统计当然是不可靠的,数据当然越多越好,越随机越好。公式如果抽象,那么通过一道例题可以帮助理解。

                                          

                                               

代码实现可以借鉴https://blog.csdn.net/weixin_40230767/article/details/79078641

同时,我们也考虑这样极端的情形,当样本中某一类样本数量为0,显然此时极大似然估计的值便是0,后续后验概率将受到影响。于是,人们提出来了一种方法——贝叶斯估计,将原来似然估计分子分母同时引入一个参数\lambda

                                                          P(X^{(j)}=a_{jl}|Y=c_{k}) = \frac{ \sum_{i=1}^{N}I(x_{i}^{(j)}=a_{jl},y_{i}=c_{k}) +\lambda }{\sum_{i=1}^{N} I(y_{i}=c_{k}) +S_{j}\lambda}                        (10)

                                                         P(Y=c_{k}) = \frac{ \sum_{i=1}^{N} I(y_{i}=c_{k})+\lambda }{N+K\lambda}                                                              (11)

\lambda=0即极大似然估计。当\lambda=1,称拉普拉斯平滑。其中l=1,2,3\cdots S_{j},k=1,2,3\cdots K.

猜你喜欢

转载自blog.csdn.net/qq_26564783/article/details/82219205