朴素贝叶斯是经典的机器学习算法之一,也是为数不多的基于概率论的分类算法,多用于文本分类,比如垃圾邮件过滤。
一、相关知识
二、朴素贝叶斯分类算法详解
三、朴素贝叶斯分类算法实例讲解
四、拉普拉斯平滑
1.条件概率
由乘法定理可得:
2.全概率公式
设U为试验E的样本空间,A为E的事件,为U的一个划分,且,则
3.贝叶斯公式
设U为试验E的样本空间,A为E的事件,为U的一个划分,且,,则
贝叶斯公式的意义:
1、假设导致事件A发生的原因有个,它们互不相容。
2、现在已知事件A已经发生了,若要估计它是由原因所导致的概率,则可由贝叶斯公式求出,即可从结果分析原因。
4、先验概率和后验概率
先验概率:泛指一类事物发生的概率,叫做先验概率。根据大数定律,先验概率可以通过各类样本出现的频率来进行估计。
后验概率:某个特性条件下一个具体的事物发生的概率叫做后验概率。
5、贝叶斯分类
设X是类标号未知的数据样本。设H为某种假定,,如数据样本X属于某特定的类C。对于分类问题,我们希望确定P(H|X),即给定观测数据样本X,假定H成立的概率。贝叶斯定理给出了如下计算P(H|X)的简单有效的方法:
P(H)是先验概率,或称H的先验概率。
P(X|H)代表假设H成立的情况下,观察到X的概率。
P(H| X )是后验概率,或称条件X下H的后验概率。
也就是在已知P(X|H)的情况下如何求得P(H|X)。
朴素贝叶斯分类的工作过程如下:
(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称为最大后验假定。根据贝叶斯定理:
(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)的开销,可以做类条件独立的朴素假定。
给定样本的类标号,假定属性值相互条件独立,即在属性间,不存在依赖关系。这样:
其中的计算方式如下:
对于离散属性而言,其中si是类Ci中的训练样本数,在si中第k个属性上取值为的样本的个数为m:
对连续属性而言,通常假设连续属性均服从均值为μ、标准差为σ的高斯分布:
(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这种值(一般用于回归分析)】
对下面的情况作出决策:
为了避免其他属性携带的信息被训练集中未出现的属性值抹去,在估计概率值时通常要进行‘平滑’,常用‘拉普拉斯修正’。具体来说,令N表示训练集D中可能的类别数,Ni表示第i个属性可能的取值数,则
通过拉普拉斯平滑处理能够有效避免概率为零的情况。