机器学习系列-朴素贝叶斯分类器

贝叶斯分类器

什么是贝叶斯分类器

贝叶斯分类器是一类分类器的总称,这些分类器均以贝叶斯定理为基础,故统称为贝叶斯分类器。这些分类器中最简单的是朴素贝叶斯分类器,它几乎完全按照贝叶斯定理进行分类,因此我们从朴素贝叶斯分类器说起。

贝叶斯定理:

贝叶斯定理是概率论中一个比较重要的定理,在讲解贝叶斯定理之前,首先回顾一下贝叶斯定理的基础:条件概率和全概率公式。

  • 条件概率:设\(A,B\)是两个事件,且\(P(A)>0\),称

    \[P(B|A)=\frac{P(AB)}{P(A)}\]

    为在事件\(A\)发生的情况下事件\(B\)发生的条件概率。

条件概率很容易理解。一般情况下,概率可以表示为事件所包含的基本事件数(表示为\(count(B)\))与样本空间的基本事件数(表示为\(count(S)\))之商,即

\[P(A)=\frac{count(B)}{count(S)}\]

当我们在求条件概率时,分母不再是\(count(S)\)而是\(count(A\cap S)\),而分子也变成了\(count(A\cap B)\),因此

\[P(B|A)=\frac{count(AB)}{count(AS)}=\frac{count(AB)}{count(A)}\]

因为\(\frac{count(AB)}{count(A)}=\frac{P(AB)count(A)}{P(A)count(A)}\),约去\(count(A)\),就得到了条件概率公式。

  • 全概率公式:设试验\(E\)的样本空间为\(S\),\(A\)为\(E\)的事件,\(B_1,B_2,...,B_n\)为\(S\)的一个划分,且\(P(B_i)>0(i=1,2,...n)\),则

    \[P(A)=\sum_{i=1}^{n}P(A|B_i)P(B_i)\]称为全概率公式。

全概率公式的证明也很简单:

\(A=AS=A(B_1\cup B_2\cup ...\cup B_n)=AB_1\cup AB_2\cup ...\cup AB_n\),因为\(P(B_i)>0\) 且 \((AB_i)(AB_j)=\varnothing,i\neq j,i,j=1,2,...,n\),所以,

\(P(A)=\sum_{i=1}^{n} P(AB_i)=\sum_{i=1}^{n} P(A|B_i)P(B_i)\)

介绍完上面两个公式,就可以引出贝叶斯公式:

  • 设试验\(E\)的样本空间为\(S\),\(A\)为\(E\)的事件,\(B_1,B_2,...,B_n\)为\(S\)的一个划分,且\(P(A_i)>0,P(B_i)>0(i=1,2,...n)\),则

    \[P(B_i|A)=\frac{P(A|B_i)P(B_i)}{\sum_{j=1}^{n}P(A|B_j)P(B_j)}\]

    称为贝叶斯公式。

    贝叶斯分类器

    贝叶斯公式的直观意义显而易见:当我们得知了\(P(B_i|A),P(B_i)\)就可以求\(P(A|B_i)\)。对应到分类任务中,就是当我们得知了\(P(\)属性\(|\)类别\(),P(\)属性\()\)就可以求\(P(\)类别\(|\)属性\()\)。

朴素贝叶斯分类的定义如下:

1、设\(X=\{a_1,a_2,...,a_m\}\)为一个待分类项,而每个\(a\)为\(x\)的一个特征属性。

2、有类别集合\(C=\{y_1,y_2,...,y_n\}\)。

3、计算\(P(y_1|x),P(y_2|x),...,P(y_n|x)\)。

4、如果\(P(y_k|x)=max\{P(y_1|x),P(y_2|x),...,P(y_n|x)\}\),则\(x\in y_k\)。

计算\(P(y_i|x)\)的方式如下:统计得到在各类别下各个特征属性的条件概率估计。即\(P(a_1|y_1),P(a_2|y_1),...,P(a_m|y_1);P(a_1|y_2),P(a_2|y_2),...,P(a_m|y_2);...;P(a_1|y_n),P(a_2|y_n),...,P(a_m|y_n)\),如果各个特征属性是条件独立的,则根据贝叶斯定理有如下推导:

\(P(y_i|x)=\frac{P(x|y_i)P(y_i)}{P(x)}\),因为分母对于所有类别为常数,因为我们只要将分子最大化皆可。又因为各特征属性是条件独立的,所以有:

\[P(x|y_i)P(y_i)=P(a_1|y_i)P(a_2|y_i)...P(a_m|y_i)P(y_i)=P(y_i)\prod_{j=1}^{m}P(a_j|y_i)\]

估计类别下特征属性划分的条件概率及Laplace校准

由上文看出,计算各个划分的条件概率\(P(a|y)\)是朴素贝叶斯分类的关键性步骤,当特征属性为离散值时,只要很方便的统计训练样本中各个划分在每个类别中出现的频率即可用来估计\(P(a|y)\),下面重点讨论特征属性是连续值的情况。当特征属性为连续值时,通常假定其值服从高斯分布(也称正态分布)。即:

\(g(x,\eta ,\sigma)=\frac{1}{\sqrt{2\pi}\sigma}e^{\frac{-(x-\eta)^2}{2\sigma^2}}\),而\(P(a_k|y_i)=g(a_k,\eta_{y_i} ,\sigma_{y_i})\),因此只要计算出训练样本中各个类别中此特征项划分的各均值和标准差,代入上述公式即可得到需要的估计值。均值与标准差的计算在此不再赘述。另一个需要讨论的问题就是当\(P(a|y)=0\)怎么办,当某个类别下某个特征项划分没有出现时,就是产生这种现象,这会令分类器质量大大降低。为了解决这个问题,我们引入Laplace校准,它的思想非常简单,就是对没类别下所有划分的计数加1,这样如果训练样本集数量充分大时,并不会对结果产生影响,并且解决了上述频率为0的尴尬局面。

朴素贝叶斯算法的优缺点

优点:

  1. 数学基础坚实,分类效率稳定,容易解释;
  2. 所需估计的参数很少,对缺失数据不太敏感;
  3. 无需复杂的迭代求解框架,适用于规模巨大的数据集。

缺点:

  1. 属性之间的独立性假设往往不成立(可考虑用聚类算法先将相关性较大的属性进行聚类);
  2. 需要知道先验概率,分类决策存在错误率。

朴素贝叶斯分类器是个非常简单的分类器,原理完全基于概率论中的贝叶斯定理,但是它的假设条件对于现实应用有些严苛,不过,这并不妨碍朴素贝叶斯分类器在垃圾邮件识别,不真实账号检测等领域发挥重大作用。用已故的统计学家George E. P. Box的话来说,就是:All models are wrong, but some are useful.

时间: 2024-08-07 09:19:01

机器学习系列-朴素贝叶斯分类器的相关文章

机器学习之朴素贝叶斯分类器

朴素贝叶斯分类器 (naive bayes classifier, NBC) 是一种常见且简单有效的贝叶斯分类算法.对已知类别,朴素贝叶斯分类器在估计类条件概率时假设特征之间条件独立.这样的假设,可以使得在有限的训练样本下,原本难以计算的联合概率 \(P(X_1, X_2, \cdots, X_n | Y)\) 转化为每个类别条件概率的乘积.尤其是在特征很多时,就显得更加简便. 条件独立性 给定 X, Y 条件独立,则有: \[ P(X,Y|Z)=P(X|Z)\times P(Y|Z) \] 有

吴裕雄--天生自然python机器学习:朴素贝叶斯算法

分类器有时会产生错误结果,这时可以要求分类器给出一个最优的类别猜测结果,同 时给出这个猜测的概率估计值. 概率论是许多机器学习算法的基础 在计算 特征值取某个值的概率时涉及了一些概率知识,在那里我们先统计特征在数据集中取某个特定值 的次数,然后除以数据集的实例总数,就得到了特征取该值的概率. 首先从一个最简单的概率分类器开始,然后给 出一些假设来学习朴素贝叶斯分类器.我们称之为“朴素”,是因为整个形式化过程只做最原始.最简单的假设. 基于贝叶斯决策理论的分类方法 朴素贝叶斯是贝叶斯决策理论的一部

机器学习之朴素贝叶斯

一 .朴素贝叶斯算法概述  前面我们讲过KNN分类算法和决策树分类算法,两者最终都是预测出实例的确定的分类结果,但是,有时候分类器会产生错误结果:本章要学的朴素贝叶斯分类算法则是给出一个最优的猜测结果,同时给出猜测的概率估计值. 朴素贝叶斯对一个测试样本分类时,通过比较p(y=0|x)和p(y=1|x)来进行决策.这里注意涉及两个重点,一个是贝叶斯公式:p(y=1|x)=p(x|y=1)p(y=1)p(x)p(y=1|x)=p(x|y=1)p(y=1)p(x),其中x是一个多维向量,x=(x1,

[机器学习&数据挖掘]朴素贝叶斯数学原理

1.准备: (1)先验概率:根据以往经验和分析得到的概率,也就是通常的概率,在全概率公式中表现是“由因求果”的果 (2)后验概率:指在得到“结果”的信息后重新修正的概率,通常为条件概率(但条件概率不全是后验概率),在贝叶斯公式中表现为“执果求因”的因 例如:加工一批零件,甲加工60%,乙加工40%,甲有0.1的概率加工出次品,乙有0.15的概率加工出次品,求一个零件是不是次品的概率即为先验概率,已经得知一个零件是次品,求此零件是甲或乙加工的概率是后验概率 (3)全概率公式:设E为随机试验,B1,

机器学习算法-朴素贝叶斯Python实现

引文:前面提到的K最近邻算法和决策树算法,数据实例最终被明确的划分到某个分类中,下面介绍一种不能完全确定数据实例应该划分到哪个类别,或者说只能给数据实例属于给定分类的概率. 基于贝叶斯决策理论的分类方法之朴素贝叶斯 优点:在数据较少的情况下仍然有效,可以处理多类别问题 缺点:对于输入数据的准备方式较为敏感 适用数据类型:标称型数据. 朴素贝叶斯的一般过程 收集数据:可以使用任何方式 准备数据:需要数据型或是布尔型数据 分类数据:有大量特征时,绘制特征作用不大,此时使用直方图效果更好 训练算法:计

机器学习之朴素贝叶斯算法

1 贝叶斯定理的引入 概率论中的经典条件概率公式: 公式的理解为,P(X ,Y)= P(Y,X)<=> P(X | Y)P(Y)= P(Y | X)P (X),即 X 和 Y 同时发生的概率与 Y 和 X 同时发生的概率一样. 2 朴素贝叶斯定理 朴素贝叶斯的经典应用是对垃圾邮件的过滤,是对文本格式的数据进行处理,因此这里以此为背景讲解朴素贝叶斯定理.设D 是训练样本和相关联的类标号的集合,其中训练样本的属性集为          X { X1,X2, ... , Xn }, 共有n 个属性:

【机器学习】--机器学习之朴素贝叶斯从初始到应用

一.前述 机器学习算法中,有种依据概率原则进行分类的朴素贝叶斯算法,正如气象学家预测天气一样,朴素贝叶斯算法就是应用先前事件的有关数据来估计未来事件发生的概率. 二.具体 1.背景--贝叶斯定理引入对于两个关联事件(非独立事件)A和B,同时发生的概率为:P(AB)=P(A|B)P(B)=P(B|A)P(A),所以把公式变形后可得: 贝叶斯定理,他是朴素贝叶斯算法的基础,就是下面的这个公式: 现在我们来把这个式子扩充一下:假设B由很多个独立事件组成,或者说,B由很多个属性组成B1,B2...Bn他

朴素贝叶斯分类器

预备知识: 贝叶斯公式:A.B事件.在A发生条件下B发生的概率=在B发生条件下A发生的概率*B发生的概率/A发生的概率 P(B|A)=P(A|B)P(B) / P(A) 全概率公式: 特别的,设实验E的样本空间为S,A为E的事件,B1,B2,...,Bn为S的一个划分,且P(Bi)>0(i=1,2,...,n),则有P(A)=P(A|B1)*P(B1) + P(A|B2)*P(B2) + ... + P(A|Bn)*P(Bn) 故有贝叶斯的另一种形式: P(B[j]|A[i])=P(A[i]|B

复习机器学习算法:贝叶斯分类器

朴素贝叶斯算法是寻找一个极大后验假设(MAP),即候选假设的最大后验概率. 如下: 在朴素贝叶斯分类器中,假设样本特征之间是独立的,则有: 计算每个假设的后验概率,选出最大的概率,对应的类别就是样本的分类结果. 优缺点: 对小规模的数据表现很好,适合多分类任务,适合增量式训练.当时,需要样本的特征之间独立性较高,不能有太多的相关性.对输入数据的表达形式很敏感. 还有,当样本中某个特征在该类别中出现次数为0,即P(ai |vj)=0, 导致上式的分子全部为0. 这个时候需要使用m-估计和贝叶斯结合