机器学习-朴素贝叶斯法

朴素贝叶斯法

朴素贝叶斯是经典的机器学习算法之一,也是为数不多的基于概率论的分类算法,多用于文本分类,比如垃圾邮件过滤。

一、相关知识

二、朴素贝叶斯分类算法详解

三、朴素贝叶斯分类算法实例讲解

四、拉普拉斯平滑

 


一、相关知识

 1.条件概率

P(A|B)=\frac{P(AB)}{P(B)},表示事件B发生后事件A发生的概率。

由乘法定理可得:P(AB)=P(B)(A|B)=P(A)P(B|A)

2.全概率公式

设U为试验E的样本空间,A为E的事件,B_{1},B_{2},...,B_{n}为U的一个划分,且P(B_{i})>0,(i=1,2,...,n),则

机器学习-朴素贝叶斯法_第1张图片机器学习-朴素贝叶斯法_第2张图片

 3.贝叶斯公式

设U为试验E的样本空间,A为E的事件,B_{1},B_{2},...,B_{n}为U的一个划分,且P(A)>0,P(B_{i})>0,(i=1,2,...,n),则

机器学习-朴素贝叶斯法_第3张图片

贝叶斯公式的意义:

1、假设导致事件A发生的原因有B_{i}(i=1,2,...,n)个,它们互不相容。

2、现在已知事件A已经发生了,若要估计它是由原因B_{i}所导致的概率,则可由贝叶斯公式求出,即可从结果分析原因。

4、先验概率和后验概率

先验概率:泛指一类事物发生的概率,叫做先验概率。根据大数定律,先验概率可以通过各类样本出现的频率来进行估计。

后验概率:某个特性条件下一个具体的事物发生的概率叫做后验概率。

5、贝叶斯分类

设X是类标号未知的数据样本。设H为某种假定,,如数据样本X属于某特定的类C。对于分类问题,我们希望确定P(H|X),即给定观测数据样本X,假定H成立的概率。贝叶斯定理给出了如下计算P(H|X)的简单有效的方法:

P(H|X)=\frac{P(X|H)*P(H)}{P(X)}

P(H)是先验概率,或称H的先验概率。

P(X|H)代表假设H成立的情况下,观察到X的概率。

P(H| X )是后验概率,或称条件X下H的后验概率。

也就是在已知P(X|H)的情况下如何求得P(H|X)。

P(X|H)=\frac{P(HX)}{P(H)}  即:P(feature|class)=\frac{P(feature,class)}{P(class))}

P(H|X)=\frac{P(X|H)*P(H)}{P(X)} 即:P(class|feature)=\frac{P(class)P(feature|class)}{P(feature))} 

二、朴素贝叶斯分类算法详解

朴素贝叶斯分类的工作过程如下:

(1) 每个数据样本用一个n维特征向量X = {x1,x2,……,xn}表示,分别描述对n个属性A1,A2,……,An样本的n个度量。

(2) 假定有m个类C1,C2,…,Cm,给定一个未知的数据样本X(即没有类标号),分类器将预测X属于具有最高后验概率(条件X下)的类。也就是说,朴素贝叶斯分类将未知的样本分配给类Ci(1≤i ≤m )当且仅当P( Ci |X )> P( Cj |X ),对任意的j =1,2,…,m,j≠i。这样,最大化P(Ci|X)。其P(Ci|X)最大的类Ci称为最大后验假定。根据贝叶斯定理:

P(C_{i}|X)=\frac{P(X|C_{i})*P(C_{i})}{P(X)}

(3) 由于P(X)对于所有类为常数,只需要P(X|Ci)*P(Ci)最大即可。

如果C i 类的先验概率未知,则通常假定这些类是等概率的, 即P(C1)=P( C2)=…=P(C m),因此问题就转换为对P(X|Ci)的最大化(P(X|Ci)常被称为给定Ci 时数据X的似然度,而使P(X|Ci)最大的假设Ci 称为最大似然假设)。否则需要最大化P(X|Ci )*P(Ci )。注意,类的先验概率可以用P( Ci)= si /s计算,其中si是类Ci中的训练样本数,而s是训练样本总数。

(4) 给定具有许多属性的数据集,计算P (X | Ci )的开销可能非常大。为降低计算P(X|Ci)的开销,可以做类条件独立的朴素假定。

P(AB)=P(A)P(B)
给定样本的类标号,假定属性值相互条件独立,即在属性间,不存在依赖关系。这样:

P(X|C_{i})=\prod_{k=1}^{n}P(x_{k}|C_{i})     (联合概率分布)       

P(C_{i})=\frac{s_{i}}{s} ,其中si是类Ci中的训练样本数,而s是训练样本总数。

其中P(x_{k}|C_{i})的计算方式如下:

对于离散属性而言,其中si是类Ci中的训练样本数,在si中第k个属性上取值为x_{k}的样本的个数为m:

P(x_{k}|C_{i})=\frac{m}{s_{i}}  

对连续属性而言,通常假设连续属性均服从均值为μ、标准差为σ的高斯分布:

G(x,\mu ,\sigma )=\frac{1}{\sqrt[1]{2\pi } \sigma }e^{-\frac{(x_{i}-\mu)^{2} }{2\sigma ^{2}}}

P(x_{k}|C_{i})=G(x_{k},\mu _{C_{i}},\sigma_{C_{i}} )

(5) 对未知样本X分类,也就是对每个类Ci,计算P(X|Ci)*P(Ci)。

样本X被指派到类Ci ,当且仅当P( Ci|X )> P( Cj|X ),1≤j≤m,j≠i,换言之,X被指派到其P(X|Ci)*P(Ci)最大的类。

优点:朴素贝叶斯法的基本假设是条件独立性,由于这一假设,模型包含的条件概率的数量大为减少,朴素贝叶斯法的学习与预测大为简化。因而朴素贝叶斯法高效,易于实现。

缺点:分类的性能不一定高。对输入数据的准备方式敏感。

适用数据类型:标称型数据

【标称型:一般在有限的数据中取,而且只存在‘是’和‘否’两种不同的结果(一般用于分类)

数值型:可以在无限的数据中取,而且数值比较具体化,例如4.02,6.23这种值(一般用于回归分析)】

三、朴素贝叶斯分类算法实例讲解

机器学习-朴素贝叶斯法_第4张图片

                     机器学习-朴素贝叶斯法_第5张图片

对下面的情况作出决策:

                      

机器学习-朴素贝叶斯法_第6张图片

机器学习-朴素贝叶斯法_第7张图片

机器学习-朴素贝叶斯法_第8张图片

四、拉普拉斯平滑

为了避免其他属性携带的信息被训练集中未出现的属性值抹去,在估计概率值时通常要进行‘平滑’,常用‘拉普拉斯修正’。具体来说,令N表示训练集D中可能的类别数,Ni表示第i个属性可能的取值数,则

P(C_{i})=\frac{s_{i}+1}{s+N}

P(x_{k}|C_{i})=\frac{m+1}{s_{i}+N_{i}}

通过拉普拉斯平滑处理能够有效避免概率为零的情况。

 

你可能感兴趣的:(机器学习,机器学习)