浅谈朴素贝叶斯

贝叶斯公式

  贝叶斯公式由英国数学家贝叶斯 ( Thomas Bayes 1702-1761 ) 发展,用来描述两个条件几率之间的关系,好比 P(A|B) P(B|A)。按照乘法法则,能够马上导出:P(AB) = P(A)*P(B|A)=P(B)*P(A|B)。如上公式也可变形为:P(A|B)=P(B|A)*P(A)/P(B)。因为其有着坚实的数学基础,贝叶斯分类算法的误判率是很低的。贝叶斯方法的特色是结合先验几率和后验几率,即避免了只使用先验几率的主观偏见,也避免了单独使用样本信息的过拟合现象。贝叶斯分类算法在数据集较大的状况下表现出较高的准确率,同时算法自己也比较简单。算法

贝叶斯

 

 

  贝叶斯(Thomas Bayes,17021761),英国牧师、业余数学家。生活在18世纪的贝叶斯生前是位受人尊敬的英格兰长老会牧师。为了证实上帝的存在,他发明了几率统计学原理,遗憾的是,他的这一美好愿望至死也未能实现。贝叶斯在数学方面主要研究几率论。他首先将概括推理法用于几率论基础理论,并创立了贝叶斯统计理论,对于统计决策函数、统计推断、统计的估算等作出了贡献。1763年发表了这方面的论著,对于现代几率论和数理统计都有很重要的做用。1758年发表了另外一著做《机会的学说概论》。贝叶斯所采用的许多术语都被沿用至今。贝叶斯思想和方法对几率统计的发展产生了深远的影响。今天,贝叶斯思想和方法在许多领域都得到了普遍的应用。从二十世纪20~30年代开始,几率统计学出现了“频率学派”和“贝叶斯学派”的争论,至今,两派的恩恩怨怨仍在继续。spring

朴素贝叶斯

  朴素贝叶斯分类是基于贝叶斯几率的思想,假设属性之间相互独立,求得各特征的几率,最后取较大的一个做为预测结果。虽然这个简化方式在必定程度上下降了贝叶斯分类算法的分类效果,可是在实际的应用场景中,极大地简化了贝叶斯方法的复杂性。简而言之,朴素贝叶斯是较为简单的一种分类器。函数

  属性独立性:事件B的发生不对事件A的发生形成影响,这样的两个事件叫作相互独立事件。然而其属性独立性假设在现实世界中大多不能成立,例如: “spring”的后面更有可能跟着“MVC”。学习

  AB中至少有一件事情发生:ABAB同时发生:AB(或AB);若是P(AB) =P(A)P(B),称A,B 相互独立。即:从数学上说,若N (N2) 个事件相互独立,则必须知足这样的条件:其中任意k (N k 2)个事件同时发生的几率等于该k个事件单独发生时的几率的乘积。spa

例:假设事件相互独立,P(spring) = 0.2P(MVC) = 0.8, 则 P(spring MVC) = 0.2 * 0.8=0.163d

1.朴素贝叶斯算法思想

  逻辑回归经过拟合曲线(或者学习超平面)实现分类,决策树经过寻找最佳划分特征进而学习样本路径实现分类,支持向量机经过寻找分类超平面进而最大化类别间隔实现分类。相比之下,朴素贝叶斯另辟蹊径,经过考虑特征几率来预测分类。blog

  举个例子:如今有100我的,鱼龙混杂,好人和坏人的个数都差很少。如今要利用他们来训练一个“坏蛋识别器”。这时应该怎么办呢?咱们无论他们以前干过什么事,只单看他们的长相。也就是说,咱们在区别好人坏人时,只考虑他们的样貌特征。好比说“笑”这个特征,它能够是“甜美的笑”、“随和的笑”、“憨厚的笑”、“没心没肺的笑”、“微笑”等等,这些更多是“好人的笑”;也能够是“阴险的笑”、“不怀好意的笑”、“色眯眯的笑”、“冷笑”、“皮笑肉不笑”等等,这些更多是“坏人的笑”。单单就“笑”这个特征来讲,一个好人发出“好人的笑”的几率更大,频率更高;而坏人则是发出“坏人的笑”的几率更大,频率更高。固然,好人也有发出坏笑的时候,坏人也有发出好人的笑的时候,这些就都是噪声了。事件

  除了笑以外,这里能够用的特征还有纹身,性别等。朴素贝叶斯把相似“笑”这样的特征几率化,构成一个“人的样貌向量”以及对应的“好人/坏人标签”,训练出一个标准的“好人模型”和“坏人模型”,这些模型都是各个样貌特征几率构成的。这样,当一个品行未知的人来了之后,咱们能够迅速获取他(她)的样貌特征向量,分别输入“好人模型”和“坏人模型”,输出两个几率值。若是“坏人模型”输出的几率值大一些,那这我的颇有可能就是个坏人了。ci

  决策树又是怎么作的呢?决策树可能先看性别,由于它发现给定的带标签人群里面坏人中男性更多,这个特征眼下最能区分坏人和好人,而后按性别先把一拨人分红两拨;接着看“笑”这个特征,由于它是接下来最有区分度的特征,根据不一样的“笑”再把两拨人分红四拨;接下来看纹身......最后发现好人要么在学堂读书,要么在田里种地,要么在山上砍柴。而坏人呢,要么在大街上溜达,要么在地下买卖白粉,要么在海里当海盗。这些有次序的特征就像路上的一个个垫脚石(树的节点)同样,构成通往不一样地方的路径(树的枝丫),这些不一样路径的目的地(叶子)就是一个类别容器,包含了一类人。一个品行未知的人来了,按照其样貌特征顺序及其对应的特征值,不断走啊走,最后走到了学堂或农田,那就是好人;走到了地下或大海,那就是坏人。能够看出来,两种分类模型的原理是很不相同的。数学

2.朴素贝叶斯例子

【例】给定以下数据:

帅?

性格?

财富?

上进?

嫁不嫁?

很差

不上进

不嫁

不帅

上进

不嫁

上进

不帅

上进

很差

上进

不嫁

不帅

很差

不上进

不嫁

不上进

不帅

上进

上进

不帅

很差

上进

不上进

不嫁

不上进

不嫁

 

  如今咱们的问题是,假设有一对男女友,男生向女生求婚,此男生的四个特色分别是不帅,性格很差,穷,不上进,请你来判断一下该女生是嫁仍是不嫁?

  这是一个经典的分类问题,转换为数学问题就是比较p(|(不帅、性格很差、穷、不上进))p(不嫁|(不帅、性格很差、穷、不上进))的几率,就能给出嫁或者不嫁的答案!

  这里咱们运用到朴素贝叶斯公式: 

                                                            

 

 

   咱们须要求p(|(不帅、性格很差、穷、不上进),这是咱们如今不知道的,可是经过朴素贝叶斯公式能够转化为三个较为简单的量:

  p(不帅、性格很差、穷、不上进|)p(不帅、性格很差、穷、不上进)p() 

  p(不帅、性格很差、穷、不上进|) = p(不帅|)*p(性格很差|)*p(|)*p(不上进|),那么咱们就要从给定的数据中分别统计出右边这几个几率,就能够求出左边的几率!  

  咱们将上面的公式整理一下,获得:

 

 

  接下来咱们一个一个地进行统计计算。 

  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(不上进)

  统计样本以下:

帅?

性格?

财富?

上进?

嫁不嫁?

很差

不上进

不嫁

不帅

上进

不嫁

上进

不帅

上进

很差

上进

不嫁

不帅

很差

不上进

不嫁

不上进

不帅

上进

上进

不帅

很差

上进

不上进

不嫁

不上进

不嫁

  不帅统计如上标黄所示,占5个,那么p(不帅) = 5/12

帅?

性格?

财富?

上进?

嫁不嫁?

很差

不上进

不嫁

不帅

上进

不嫁

上进

不帅

上进

很差

上进

不嫁

不帅

很差

不上进

不嫁

不上进

不帅

上进

上进

不帅

很差

上进

不上进

不嫁

不上进

不嫁

  性格很差统计如上标黄所示,占4个,那么p(性格很差) = 4/12 = 1/3

帅?

性格?

财富?

上进?

嫁不嫁?

很差

不上进

不嫁

不帅

上进

不嫁

上进

不帅

上进

很差

上进

不嫁

不帅

很差

不上进

不嫁

不上进

不帅

上进

上进

不帅

很差

上进

不上进

不嫁

不上进

不嫁

  穷统计如上标黄所示,占7个,那么p(穷) = 7/12

帅?

性格?

财富?

上进?

嫁不嫁?

很差

不上进

不嫁

不帅

上进

不嫁

上进

不帅

上进

很差

上进

不嫁

不帅

很差

不上进

不嫁

不上进

不帅

上进

上进

不帅

很差

上进

不上进

不嫁

不上进

不嫁

  不上进统计如上标黄所示,占5个,那么p(不上进) = 5/12

  到这里,要求p(不帅、性格很差、穷、不上进|),所须要的全部项所有求出来了,下面咱们带入数据进去便可算出:

 

 

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

 

  下面咱们根据一样的方法来求p(不嫁|不帅,性格很差,穷,不上进),彻底同样的作法,为了加深理解,咱们再来过一遍。首先公式以下:

 

  下面咱们也一个一个地来进行统计计算,这个公式里面,分母和上一个公式是同样的,因此咱们不须要再算一次分母了,只需算分子部分。

  p(不嫁)=

  首先咱们整理的训练数据中,不嫁的样本数以下:

帅?

性格?

财富?

上进?

嫁不嫁?

很差

不上进

不嫁

不帅

上进

不嫁

很差

上进

不嫁

不帅

很差

不上进

不嫁

不上进

不嫁

不上进

不嫁

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

  p(不帅|不嫁) =

  不嫁的状况下不帅的样本数以下:

帅?

性格?

财富?

上进?

嫁不嫁?

不帅

上进

不嫁

不帅

很差

不上进

不嫁

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

  p(性格很差|不嫁) =

  不嫁的状况下性格很差的样本数以下:

帅?

性格?

财富?

上进?

嫁不嫁?

很差

不上进

不嫁

很差

上进

不嫁

不帅

很差

不上进

不嫁

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

  p(穷|不嫁) =

  不嫁的状况下穷的样本数以下:

帅?

性格?

财富?

上进?

嫁不嫁?

很差

不上进

不嫁

不帅

上进

不嫁

很差

上进

不嫁

不帅

很差

不上进

不嫁

不上进

不嫁

不上进

不嫁

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

  p(不上进|不嫁) =

  不嫁的状况下不上进的样本数以下:

帅?

性格?

财富?

上进?

嫁不嫁?

很差

不上进

不嫁

不帅

很差

不上进

不嫁

不上进

不嫁

不上进

不嫁

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

  那么根据公式:

 

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

 

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

  因而有p(不嫁|不帅、性格很差、穷、不上进) > p(|不帅、性格很差、穷、不上进)

  因此咱们根据朴素贝叶斯算法能够给这个女生答案,是不嫁!

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息