03 朴素贝叶斯(NBM)

朴素贝叶斯(Naive Bayesian Model)

1、定义:

贝叶斯定理是关于随机事件A和B的条件概率(或边缘概率)的一则定理。其中P(A|B)是在B发生的情况下A发生的可能性。

 

贝叶斯法事概率论你框架下实施决策的基本方法,对分类任务来说,在所有相关概率都已知的情况下,如何运用这些概率来推测,分类

 

朴素贝叶斯最核心的部分是贝叶斯法则,而贝叶斯法则的基石是条件概率

 

条件概率公式

A,B是两个事件,且P(B)>0,则在事件B发生的条件下,事件A发生的条件概为:

由条件概率可以推断出贝叶斯公式

换个形象的表达形式,如下:

我们最终求的p(类别|特征)即可!

 

我们把P(A)称为"先验概率",即在B事件发生之前,我们对A事件概率的一个判断。P(A|B)称为"后验概率",即在B事件发生之后,我们对A事件概率的重新评估。P(B|A)/P(B)称为"可能性函数",这是一个调整因子,使得预估概率更接近真实概率。

 

所以,条件概率可以理解成下面的式子:后验概率 = 先验概率 调整因子

 

这就是贝叶斯推断的含义。我们先预估一个"先验概率"P(A),然后加入实验结果B如果实验增强了"先验概率",我们就可以得到更接近事实的"后验概率"。

1、"可能性函数"P(B|A)/P(B)>1,"先验概率"被增强,事件A的发生的可能性变大

2、"可能性函数"P(B|A)/P(B)=1,意味着B事件无助于判断事件A的可能性;

3、"可能性函数"P(B|A)/P(B)<1,意味着"先验概率"被削弱,事件A的可能性变小。

 

 

例题分析

下面我先给出例子问题。

给定数据如下:

 

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

 

这是一个典型的分类问题,转为数学问题就是比较

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

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

的概率,谁的概率大,我就能给出嫁或者不嫁的答案!

 

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

 

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

 

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

 

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

 

p(嫁)=?

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

 

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

 

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

 

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

 

我们把所有已知的概率带入公式,就可以得出

 

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


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

 

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

 

得出不嫁的结论

 

 

2、贝叶斯 ==》 朴素贝叶斯

 

由概率论的知识我们可以知道,这个等式成立是有条件的,这个条件就是特征之间相互独立。(然而实际当中,特征值之间往往不是相互独立的)

 

这就是朴素贝叶斯分类有朴素一词的来源,

朴素贝叶斯算法 = 贝叶斯算法 + 各个特征之间相互独立(限定条件)

这一假设使得贝叶斯法变得简单,但有时会牺牲一定的分类准确率。

 

 

=================================

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

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

 

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

 

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

 

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

 

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

================================

 

3贝叶斯网络

朴素贝叶斯算法在计算概率值上是假设各个特征是相互独立的。贝叶斯网络则将各个特征之间的关联考虑进去。

 贝叶斯网络,又称信念网络,或有向无环图模型,是一种概率图模型。它是一种模拟人类推理过程中因果关系的不确定性处理模型,其网络拓朴结构是一个有向无环图(DAG)。 

    贝叶斯网络的有向无环图中的节点表示随机变量,它们可以是可观察到的变量,或隐变量、未知参数等。认为有因果关系(或非条件独立)的变量或命题则用箭头来连接。若两个节点间以一个单箭头连接在一起,表示其中一个节点是“因(parents)”,另一个是“果(children)”,两节点就会产生一个条件概率值。

 

=================================

贝叶斯网络概率的计算

贝叶斯网络概率的计算很简单,是从联合概率分布公式中变换所得,下面是联合概率分布公式:

 

而在贝叶斯网络中,由于存在前述的关系存在,该公式就被简化为了如下:

 

其中Parent(xi),表示的是xi的前驱结点,如果还不理解,可以对照我后面的代码,自行调试分析。

=================================

 

 

 

3、优缺点

优点

§ 朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。

§ 对小规模的数据表现很好,能个处理多分类任务,适合增量式训练;

§ 对缺失数据不太敏感,算法也比较简单,常用于文本分类。

缺点

§ 需要计算先验概率;

§ 分类决策存在错误率;

§ 对输入数据的表达形式很敏感。

 

 

4、应用场景

对于在小数据集上有显著特征的相关对象,朴素贝叶斯方法可对其进行快速分类

§ 中文分词领域

§ 统计机器翻译

§ 多用于文本分类,

§ 垃圾邮件过滤

§ 拼写检查/纠正器的文章

§ 情感分析

§ 消费者分类

 

 

 

 ===彩蛋===

=================================

P(我们猜测他想输入的单词 | 他实际输入的单词)

这个概率。并找出那个使得这个概率最大的猜测单词。显然,我们的猜测未必是唯一的,就像前面举的那个自然语言的歧义性的例子一样;这里,比如用户输入: thew ,那么他到底是想输入 the ,还是想输入 thaw ?到底哪个猜测可能性更大呢?幸运的是我们可以用贝叶斯公式来直接出它们各自的概率,我们不妨将我们的多个猜测记为 h1 h2 .. ( h 代表 hypothesis),它们都属于一个有限且离散的猜测空间 H (单词总共就那么多而已),将用户实际输入的单词记为 D ( D 代表 Data ,即观测数据),

=================================

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章