朴素贝叶斯就是这么简单

贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。

1. 贝叶斯原理

1  分类问题综述

 对于分类问题,其实谁都不会陌生,日常生活中我们每天都进行着分类过程。例如,当你看到一个人,你的脑子下意识判断他是学生还是社会上的人;你可能经常会走在路上对身旁的朋友说“这个人一看就很有钱”之类的话,其实这就是一种分类操作。

 

既然是贝叶斯分类算法,那么分类的数学描述又是什么呢?

 

从数学角度来说,分类问题可做如下定义:已知集合,确定映射规则y = f(x),使得任意有且仅有一个,使得成立。

 

其中C叫做类别集合,其中每一个元素是一个类别,而I叫做项集合(特征集合),其中每一个元素是一个待分类项,f叫做分类器。分类算法的任务就是构造分类器f。

 

分类算法的内容是要求给定特征,让我们得出类别,这也是所有分类问题的关键。那么如何由指定特征,得到我们最终的类别,也是我们下面要讲的,每一个不同的分类算法,对应着不同的核心思想。

 

本篇文章,我会用一个具体实例,对朴素贝叶斯算法几乎所有的重要知识点进行讲解。

 

2  朴素贝叶斯分类

那么既然是朴素贝叶斯分类算法,它的核心算法又是什么呢?

是下面这个贝叶斯公式:

 

 

换个表达形式就会明朗很多,如下:

 

 

我们最终求的p(类别|特征)即可!就相当于完成了我们的任务。

 

3  例题分析

下面我先给出例子问题。

 

给定数据如下:

 

 

现在给我们的问题是,如果一对男女朋友,男生想女生求婚,男生的四个特点分别是不帅,性格不好,身高矮,不上进,请你判断一下女生是嫁还是不嫁?

 

这是一个典型的分类问题,转为数学问题就是比较p(嫁|(不帅、性格不好、身高矮、不上进))与p(不嫁|(不帅、性格不好、身高矮、不上进))的概率,谁的概率大,我就能给出嫁或者不嫁的答案!

这里我们联系到朴素贝叶斯公式:

 

 

我们需要求p(嫁|(不帅、性格不好、身高矮、不上进),这是我们不知道的,但是通过朴素贝叶斯公式可以转化为好求的三个量.

 

p(不帅、性格不好、身高矮、不上进|嫁)、p(不帅、性格不好、身高矮、不上进)、p(嫁)(至于为什么能求,后面会讲,那么就太好了,将待求的量转化为其它可求的值,这就相当于解决了我们的问题!)

 

4  朴素贝叶斯算法的朴素一词解释

那么这三个量是如何求得?

 

是根据已知训练数据统计得来,下面详细给出该例子的求解过程。

回忆一下我们要求的公式如下:

 

 

那么我只要求得p(不帅、性格不好、身高矮、不上进|嫁)、p(不帅、性格不好、身高矮、不上进)、p(嫁)即可,好的,下面我分别求出这几个概率,最后一比,就得到最终结果。

 

p(不帅、性格不好、身高矮、不上进|嫁) = p(不帅|嫁)*p(性格不好|嫁)*p(身高矮|嫁)*p(不上进|嫁),那么我就要分别统计后面几个概率,也就得到了左边的概率!

 

等等,为什么这个成立呢?学过概率论的同学可能有感觉了,这个等式成立的条件需要特征之间相互独立吧!

 

对的!这也就是为什么朴素贝叶斯分类有朴素一词的来源,朴素贝叶斯算法是假设各个特征之间相互独立,那么这个等式就成立了!

 

但是为什么需要假设特征之间相互独立呢?

 

 

1、我们这么想,假如没有这个假设,那么我们对右边这些概率的估计其实是不可做的,这么说,我们这个例子有4个特征,其中帅包括{帅,不帅},性格包括{不好,好,爆好},身高包括{高,矮,中},上进包括{不上进,上进},那么四个特征的联合概率分布总共是4维空间,总个数为2*3*3*2=36个。

 

36个,计算机扫描统计还可以,但是现实生活中,往往有非常多的特征,每一个特征的取值也是非常之多,那么通过统计来估计后面概率的值,变得几乎不可做,这也是为什么需要假设特征之间独立的原因。

 

2、假如我们没有假设特征之间相互独立,那么我们统计的时候,就需要在整个特征空间中去找,比如统计p(不帅、性格不好、身高矮、不上进|嫁),

 

我们就需要在嫁的条件下,去找四种特征全满足分别是不帅,性格不好,身高矮,不上进的人的个数,这样的话,由于数据的稀疏性,很容易统计到0的情况。 这样是不合适的。

 

根据上面俩个原因,朴素贝叶斯法对条件概率分布做了条件独立性的假设,由于这是一个较强的假设,朴素贝叶斯也由此得名!这一假设使得朴素贝叶斯法变得简单,但有时会牺牲一定的分类准确率。

 

好的,上面我解释了为什么可以拆成分开连乘形式。那么下面我们就开始求解!

 

我们将上面公式整理一下如下:

 

 

下面我将一个一个的进行统计计算(在数据量很大的时候,根据中心极限定理,频率是等于概率的,这里只是一个例子,所以我就进行统计即可)。

 

p(嫁)=?

首先我们整理训练数据中,嫁的样本数如下:

 

则 p(嫁) = 6/12(总样本数) = 1/2

 

p(不帅|嫁)=?统计满足样本数如下:

 

则p(不帅|嫁) = 3/6 = 1/2 在嫁的条件下,看不帅有多少

 

p(性格不好|嫁)= ?统计满足样本数如下:

 

则p(性格不好|嫁)= 1/6

 

p(矮|嫁) = ?统计满足样本数如下:

 

则p(矮|嫁) = 1/6

 

p(不上进|嫁) = ?统计满足样本数如下:

 

则p(不上进|嫁) = 1/6

 

下面开始求分母,p(不帅),p(性格不好),p(矮),p(不上进)

统计样本如下:

 

 

不帅统计如上红色所示,占4个,那么p(不帅) = 4/12 = 1/3

 

 

性格不好统计如上红色所示,占4个,那么p(性格不好) = 4/12 = 1/3

 

 

身高矮统计如上红色所示,占7个,那么p(身高矮) = 7/12

 

 

不上进统计如上红色所示,占4个,那么p(不上进) = 4/12 = 1/3

 

到这里,要求p(不帅、性格不好、身高矮、不上进|嫁)的所需项全部求出来了,下面我带入进去即可,

 

= (1/2*1/6*1/6*1/6*1/2)/(1/3*1/3*7/12*1/3)

 

下面我们根据同样的方法来求p(不嫁|不帅,性格不好,身高矮,不上进),完全一样的做法,为了方便理解,我这里也走一遍帮助理解。首先公式如下:

 

 

下面我也一个一个来进行统计计算,这里与上面公式中,分母是一样的,于是我们分母不需要重新统计计算!

 

p(不嫁)=?根据统计计算如下(红色为满足条件):

 

 

则p(不嫁)=6/12 = 1/2

 

p(不帅|不嫁) = ?统计满足条件的样本如下(红色为满足条件):

 

 

则p(不帅|不嫁) = 1/6

 

p(性格不好|不嫁) = ?据统计计算如下(红色为满足条件):


则p(性格不好|不嫁) =3/6 = 1/2

 

p(矮|不嫁) = ?据统计计算如下(红色为满足条件):

 

则p(矮|不嫁) = 6/6 = 1

 

p(不上进|不嫁) = ?据统计计算如下(红色为满足条件):

则p(不上进|不嫁) = 3/6 = 1/2

 

那么根据公式:

 

p (不嫁|不帅、性格不好、身高矮、不上进) = ((1/6*1/2*1*1/2)*1/2)/(1/3*1/3*7/12*1/3)

很显然(1/6*1/2*1*1/2) > (1/2*1/6*1/6*1/6*1/2)

 

于是有p (不嫁|不帅、性格不好、身高矮、不上进)>p (嫁|不帅、性格不好、身高矮、不上进)

 

所以我们根据朴素贝叶斯算法可以给这个女生答案,是不嫁!!!!

 

5  朴素贝叶斯分类的优缺点

优点:

(1) 算法逻辑简单,易于实现(算法思路很简单,只要使用贝叶斯公式转化医学即可!)

(2)分类过程中时空开销小(假设特征相互独立,只会涉及到二维存储)

 

缺点:

 

理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。

 

而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。

 

2.朴素贝叶斯文本分类

文本数据的一个典型特征就是其维度较大,比如一篇文档,会有几千甚至上万个词,但是不同类型或主题的文档所用词汇差距较大,可以不考虑词汇出现的顺序,即采用bag of words模型,假设文本中每个词的出现都是独立的。基于此类假设的文本分类问题,可以采用朴素贝叶斯方法进行求解。 
  以下例子取自《信息检索导论》一书,有训练集和测试集如下:

文档ID                  文档中的词                             属于c=Chinac=China类
训练集    1    Chinese Beijing Chinese                          Yes
               2    Chinese Chinese Shanghai                      Yes
               3    Chinese Macao                                         Yes
               4    Tokyo Japan Chinese                                No
测试集    5    Chinese Chinese Chinese Tokyo Japan    ?


现在要判断测试集的数据是否属于China类。首先由训练集数据计算先验概率及类条件概率。 

注意到,Tokyo、Japan在训练集的China类中没有出现,其条件概率就为0,会影响到测试集类别的估计,因此,我们采用拉普拉斯平滑,各类中每个词出现的概率计算如下: 

然后,计算测试集数据属于各类别的概率: 

于是,分类器会将测试集数据归于China类。

本文详述了朴素贝叶斯分类方法,并以一个简单的文本分类为例介绍其应用。朴素贝叶斯的朴素体现在对各个特征的独立性假设,加上独立性假设后,大大减少了参数假设空间,其学习与预测大为简化。 
  尽管条件独立性假设很朴素,但是朴素贝叶斯分类器的分类效果依然很好,即使各特征之间存在较强的相关性。The Optimality of Naïve Bayes一文给出了一种解释,简述如下:特征之间的相关性可能在不同类别中均匀分布,不同特征的相关性可能相互抵消,因此,独立性假设会改变分类的后验概率大小,但不会改变其相对大小,所以不会影响分类结果
 

<think>嗯,用户想了解朴素贝叶斯算法的原理和应用。首先,我需要回忆一下这个算法的基本概念。朴素贝叶斯是基于贝叶斯定理的分类方法,对吧?我记得贝叶斯定理是用来计算条件概率的,公式应该是$P(A|B) = \frac{P(B|A)P(A)}{P(B)}$。然后,“朴素”这个词是因为假设特征之间是独立的,这个假设在现实中可能不成立,但简化了计算。 接下来,用户可能想知道具体的原理步骤。应该从贝叶斯定理开始,然后解释条件概率和特征独立假设。需要提到如何将贝叶斯定理应用到分类问题中,计算后验概率,并选择概率最大的类作为预测结果。公式部分需要正确使用LaTeX,比如后验概率的表达式应该是$$P(Y|X) = \frac{P(X|Y)P(Y)}{P(X)}$$,然后因为特征独立,联合概率可以分解为各个特征的条件概率乘积,这样计算起来更容易。 然后是应用场景,朴素贝叶斯常用于文本分类,比如垃圾邮件过滤、情感分析,或者新闻分类。这些例子用户可能比较熟悉,可以举出来。比如引用中的例子提到了商品评论情感分析,可以引用相关的内容[^2]。 还需要考虑算法的优缺点。优点可能是简单、高效,适合高维数据;缺点是特征独立的假设可能不成立,影响准确性。可能用户还想知道如何处理连续数据,比如使用高斯朴素贝叶斯,这时候需要解释不同的分布假设。 另外,用户提供的引用里提到了拉普拉斯平滑,这是处理零概率问题的方法,应该在原理部分提到。例如,当某个特征在训练集中没有出现时,概率为零,这时候需要使用拉普拉斯平滑来避免整个后验概率为零的情况。 最后,生成相关问题时,要确保问题覆盖用户可能感兴趣的方面,比如优化方法、不同变体的区别、与其他算法的比较等。比如,如何解决特征相关性的问题,或者朴素贝叶斯在实时系统中的应用。 需要注意的是,所有数学公式必须正确使用$...$和$$...$$,比如条件概率的分解应该是$P(x_1, x_2, ..., x_n | Y) = \prod_{i=1}^n P(x_i | Y)$。同时,引用要正确标注来源,比如引用[^1]和[^2]对应的内容。 可能还需要检查是否有遗漏的部分,比如训练过程的具体步骤,或者实际应用中的代码示例。不过用户提供的示例中没有代码,所以可能不需要,但如果有相关引用的话可以加入。总之,要确保回答结构清晰,覆盖原理、应用、优缺点和相关问题,符合用户的要求。</think>### 朴素贝叶斯算法原理及应用 #### 1. 算法原理 朴素贝叶斯是基于**贝叶斯定理**和**特征条件独立假设**的分类方法。核心思想是通过已知数据计算后验概率,选择概率最大的类别作为预测结果[^1]。 **核心公式**: - 贝叶斯定理: $$P(Y|X) = \frac{P(X|Y)P(Y)}{P(X)}$$ 其中,$Y$是类别,$X$是特征向量。 - 特征独立假设: $$P(x_1, x_2, ..., x_n | Y) = \prod_{i=1}^n P(x_i | Y)$$ 即所有特征在给定类别下相互独立。 **计算步骤**: 1. 计算先验概率$P(Y)$(类别分布)。 2. 计算条件概率$P(x_i|Y)$(每个特征在各类别下的分布)。 3. 对新的输入$X$,计算所有类别的后验概率$P(Y|X)$,选择最大值对应的类别。 #### 2. 关键优化与技术 - **拉普拉斯平滑**:防止因训练数据中未出现的特征导致概率为0。例如: $$P(x_i|Y) = \frac{N_{x_i,Y} + \alpha}{N_Y + \alpha k}$$ 其中$\alpha$为平滑系数,$k$为特征取值数[^2]。 - **处理连续特征**:使用高斯分布假设(高斯朴素贝叶斯),计算均值和方差。 #### 3. 应用场景 - **文本分类**:如垃圾邮件过滤、新闻分类。 - **情感分析**:判断商品评论的正负面情感。 - **推荐系统**:结合用户行为数据预测偏好。 #### 4. 优缺点 | **优点** | **缺点** | |------------------------------|------------------------------| | 计算高效,适合高维数据 | 特征独立假设可能不符合实际 | | 对小规模数据表现良好 | 对缺失数据敏感 | | 可解释性强 | 需要手动处理连续特征 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值