1、数据挖掘:朴素贝叶斯分类,王成(副教授) 华侨大学计算机科学与技术学院,1.概率论基本知识,确定事件:概念是确定的,发生也是确定的;随机事件:概念是确定的,发生是不确定的;模糊事件:概念本身就不确定。,随机变量,随机变量:随机事件的数量表示;离散随机变量:取值为离散的随机变量 ;连续随机变量:取值为连续的随机变量 ;,频率和概率(概率的频率学派解释),频率:试验在相同的条件下重复N次,其中M次事件A发生,则A发生的频率为:fN(A) = M / N;概率:当N很大时,频率会趋向一个稳定值,称为A的概率:,联合概率和条件概率,联合概率:设A,B是两个随机事件,A和B同时发生的概率称为联合概率,记
2、为:P(A B); 条件概率:在B事件发生的条件下,A事件发生的概率称为条件概率,记为:P(A|B); 乘法定理:P(A|B) = P(AB) / P(B)。,概率密度函数,概率分布函数:设X为连续型随机变量,定义分布函数;F(x) = P(Xx); 概率密度函数:给定X是随机变量,如果存在一个非负函数f(x),使得对任意实数a,b(ab)有 P(aXb) = f(x)dx, (积分下限是a,上限是b) ,则称f(x)为X的概率密度函数,贝叶斯公式,证:,P(A)通常在试验之前已知, 因此习惯上称为先验概率。P(A|B)反映了B发生之后, 事件A发生的可能性大小, 通常称之为后验概率,贝叶斯公
3、式,先验概率P(cj),联合概率P(xcj),后验概率P(cj|x),先验概率P(cj),P(cj)代表还没有训练数据前,cj拥有的初始概率。P(cj)常被称为cj的先验概率(prior probability) ,它反映了我们所拥有的关于cj是正确分类机会的背景知识,它应该是独立于样本的。,如果没有这一先验知识,那么可以简单地将每一候选类别赋予相同的先验概率。不过通常我们可以用样例中属于cj的样例数|cj|比上总样例数|D|来近似,即,后验概率P(cj |x),即给定数据样本x时cj成立的概率,而这正是我们所感兴趣的,P(cj|x )被称为C的后验概率(posterior probabili
4、ty),因为它反映了在看到数据样本x后cj成立的置信度,贝叶斯,贝叶斯(Thomas Bayes,17011761),英国牧师、业余数学家。生活在18世纪的贝叶斯生前是位受人尊敬英格兰长老会牧师。为了证明上帝的存在,他发明了概率统计学原理,遗憾的是,他的这一美好愿望至死也未能实现。贝叶斯在数学方面主要研究概率论。他首先将归纳推理法用于概率论基础理论,并创立了贝叶斯统计理论,对于统计决策函数、统计推断、统计的估算等做出了贡献。1763年发表了这方面的论著,对于现代概率论和数理统计都有很重要的作用。贝叶斯的另一著作机会的学说概论发表于1758年。贝叶斯所采用的许多术语被沿用至今。贝叶斯思想和方法对
5、概率统计的发展产生了深远的影响。今天,贝叶斯思想和方法在许多领域都获得了广泛的应用。,条件概率,在实际问题中,往往会遇到求在事件B已经发生的条件下,事件A的概率 这时由于附加了条件,它与事件A的概率P(A)的意义是不同的 我们把这种概率记为P(A|B),条件概率,考虑一个医疗诊断问题,有两种可能的假设: (1)病人有癌症。 (2)病人无癌症。 样本数据来自某化验测试,它也有两种可能的结果:阳性和阴性。 假设我们已经有先验知识: (1)在所有人口中只有0.008的人患癌症。 (2)此外,化验测试对有癌症的患者有98%的可能返回阳性结果,对无癌症患者有97%的可能返回阴性结果。,条件概率,上面的数
6、据可以用以下概率式子表示: P(cancer)=0.008 P(无cancer)=1- P(cancer)= 1- 0.008=0.992 P(阳性|cancer)=0.98 P(阴性|cancer)=1-P(阳性|cancer)=1-0.98 =0.02 P(阴性|无cancer)=0.97 P(阳性|无cancer)=1-P(阴性|无cancer)=1-0.97=0.03 假设现在有一个新病人,化验测试结果为阳性,是否将病人断定为有癌症呢? 在这里,Y=cancer,无cancer,共两个类别,这个新病人是一个样本,他有一个属性阳性,可以令x=(阳性)。,条件概率,我们可以来计算各个类别的
7、后验概率: P(cancer 阳性) = P(阳性 | cancer) *p(cancer)=0.98*0.008 = 0.0078 P(无cancer阳性) =P(阳性 | 无cancer)*p(无cancer)=0.03*0.992 = 0.0298 P(阳性)= P(cancer 阳性) + P(无cancer阳性) = 0.0078 + 0.0298 P(cancer|阳性)= P(cancer 阳性) / P(阳性)= 0.0078/(0.0078 + 0.0298 )=0.207 P(无cancer |阳性)=1-P(癌症|阳性)= 1- 0.207 = 0.793,贝叶斯分类,贝
8、叶斯分类是统计学方法。他们可以预测类成员关系的可能性,如给定样本属于一个特定类的概率 贝叶斯分类主要是基于贝叶斯定理,通过计算给定样本属于一个特定类的概率来对给定样本进行分类 由于概率统计与数据挖掘天然的联系,数据挖掘兴起后,贝叶斯成为引人注目的热点,贝叶斯分类,贝叶斯分类基本思路: 假设有两种类别C1和C2,给定实例X,要求得到X所属的类别是C1还是C2。 计算 P(C1|X) 和 P(C2|X),如果 P(C1|X) P(C2|X),则实例X属于C1,否则属于C2。 简单的说,就是去计算在X出现的情况下,X属于哪种类别的概率更高。,如何计算P(Ci|X)?,朴素贝叶斯分类(Naive Ba
9、yes),假设有n个类别C1,C2.Cn,给定一个实例的特征向量w,则此实例属于类Ci的概率为,P(Ci)的计算: 将训练样本中属于类Ci的实例数量除以训练样本数量即P(Ci), 例如动物图片识别中,假设有100个训练实例,其中有15张为猫,则 P(猫) = 15 / 100 = 0.15,P(w)的计算: 因为利用贝叶斯进行分类时,我们只要比较概率的大小即可, 而P(w)对于所有的类别都是一样的,因此无须计算,朴素贝叶斯分类(Naive Bayes),假设有n个类别C1,C2.Cn,给定一个实例的特征向量w,则此实例属于类Ci的概率为,P(w|Ci)的计算: w是特征向量,若将其展开,则可将
10、P(w|Ci)写作 P(w0,w1,w2.wn|Ci),朴素贝叶斯假设实例的各个属性互相独立,互不影响,因此,上式等价于 P(w0|Ci)P(w1|Ci)P(w2|Ci).P(wn|Ci),朴素贝叶斯分类(Naive Bayes),假设有n个类别C1,C2.Cn,给定一个实例的特征向量w,则此实例属于类Ci的概率为,P(w|Ci)的计算:,P(w|Ci) = P(w0|Ci)P(w1|Ci)P(w2|Ci).P(wn|Ci),假设一个实例的特征向量为 (有四条腿, 会飞),即w0=有四条腿,w1为会飞,共有三个类别分别是鸟、狗、鱼,则 P(w0|C0)=P(有四条腿|鸟) = 训练样本中有四条
11、腿的鸟(实例)的数量,除以样本中鸟(实例)的数量 P(w1|C0)=P(会飞|鸟) = 训练样本中会飞的鸟(实例)的数量,除以样本中鸟(实例)的数量 P(w0, w1 |C0)= P(w0|C0)* P(w1|C0)P(有四条腿,会飞|鸟)= P(有四条腿|鸟)* P(会飞|鸟),朴素贝叶斯(Naive Bayes),朴素贝叶斯假设所有属性之间都是互相独立的,这也正是算法名称中“朴素(naive)”一词的由来 但现实中属性之间往往存在依赖,但有意思的是,即使是在朴素贝叶斯算法的独立性假设明显不成立的情况下,它也仍然能得到非常好的分类结果,C4.5,k-Means,SVM,Apriori,EM,
12、PageRank,AdaBoost,kNN,Nave Bayes,CART,十大数据挖掘算法之一,朴素贝叶斯分类举例,共14个训练实例。 共两个类别,“会买电脑”和不会买电脑。 每个训练实例有4个属性。待分类实例: (年龄30, 收入中等,是学生,信用一般),他会买电脑吗?,朴素贝叶斯分类举例,计算P(Ci) 本例中C0为未买电脑,C1为买了电脑,P(未买电脑) =,P(买了电脑) =,5/14 = 0.357,9/14 = 0.643,P(w)不用算,朴素贝叶斯分类举例,计算P(w|未买电脑) w = (年龄30, 收入中等,是学生,信用一般)P(w|Ci) = P(w0|Ci)*P(w1|
13、Ci)*P(w2|Ci)*P(w3|Ci),P(年龄30|未买电脑) =,3/5 = 0.600,P(收入中等|未买电脑) =,2/5 = 0.400,P(是学生|未买电脑) =,1/5 = 0.200,P(信用一般|未买电脑) =,2/5 = 0.400,P(w|未买电脑) =,P(w|C0)P(C0) = P(w|未买电脑) * P(未买电脑) = 0.019 * 0.357 = 0.007,0.6 * 0.4 * 0.2 * 0.4 = 0.019,朴素贝叶斯分类举例,计算P(w|买了电脑) w = (年龄30, 收入中等,是学生,信用一般)P(w|Ci) = P(w0|Ci)*P(w1
14、|Ci)*P(w2|Ci)*P(w3|Ci),P(年龄30|买了电脑) =,2/9 = 0.222,P(收入中等|买了电脑) =,4/9 = 0.444,P(是学生|买了电脑) =,6/9 = 0.667,P(信用一般|买了电脑) =,6/9 = 0.667,P(w|买了电脑) =,P(w|C1)*P(C1) = P(w|买了电脑) * P(买了电脑) = 0.044 * 0.643 = 0.028,0.222 * 0.444 * 0.667 * 0.667 = 0.044,朴素贝叶斯分类举例,P(w|C0)*P(C0) = P(w|未买电脑) * P(未买电脑) = 0.019 * 0.35
15、7 = 0.007,P(w|C1)*P(C1) = P(w|买了电脑) * P(买了电脑) = 0.044 * 0.643 = 0.028,P(不买电脑|w) = P(C0|w) = P(w| (C0)P(C0) / P(w) = 0.007 / P(w)P(会买电脑|w) = P(C1|w) = P(w| C1)*P(C1) / P(w) = 0.028 / P(w),w = (年龄30, 收入中等,是学生,信用一般),问题1:零概率问题,计算P(w|未买电脑) w = (年龄30, 收入中等,是学生,信用一般),P(年龄30|未买电脑) =,3/5 = 0.600,P(收入中等|未买电脑)
16、 =,2/5 = 0.400,P(是学生|未买电脑) =,0/5 = 0,P(信用一般|未买电脑) =,2/5 = 0.400,P(w|未买电脑) =,P(w|C0)P(C0) = P(w|未买电脑) * P(未买电脑) = 0,0.6 * 0.4 * 0 * 0.4 = 0,问题1:零概率问题的解决方案:拉普拉斯校准,校准前,概率可能为0,校准后,概率接近原概率,但不会变成0,其中N为属性值个数,问题1:零概率问题的解决方案:拉普拉斯校准,计算P(w|未买电脑) w = (年龄30, 收入中等,是学生,信用一般),P(年龄30|未买电脑) = 3/5 = 0.600,P(收入中等|未买电脑)
17、 = 2/5 = 0.400,P(是学生|未买电脑) = 0/5 = 0,P(信用一般|未买电脑) = 2/5 = 0.400,P(年龄30|未买电脑) = (3+1)/(5+4) = 0.444,P(收入中等|未买电脑) = (2+1)/(5+4) = 0.333,P(是学生|未买电脑) = (0+1)/(5+4) = 0.222,P(信用一般|未买电脑) = (2+1)/(5+4) = 0.333,拉普拉斯校准,问题2:溢出问题,P(w|Ci) = P(w0|Ci)*P(w1|Ci)*P(w2|Ci)*P(w3|Ci),等式右边分子中各概率的值 可能很小,而很小的数再相乘 可能会导致浮点数
18、溢出,对等式右边的分子求对数,进而将概率相乘转换为相加:,注: log(a*b) = log(a) + log(b),你这样乱改公式, 贝叶斯知道吗?,问题2:溢出问题,如果不指明底数,我们默认底数为2。y = log(x) 为增函数若 P(a) P(b),则 log(P(a) log(P(b)朴素贝叶斯算法是通过比较待分类实例属于各个类别的概率的大小来实现分类的, 因此只要公式能体现出概率的大小关系即可,无需计算出准确的条件概率,问题3:决策风险问题,不同的决策规则反映了分类器设计者的不同考虑,对决策结果有不同的影响。其中最有代表性的是:基于最小错误率的贝叶斯决策基于最小风险的贝叶斯决策,问
19、题3:决策风险问题:基于最小错误率的贝叶斯决策,分类器中为什么会有错分类,在何种情况下会出现错分类?错分类的可能性会有多大? 当某一特征向量X只为某一类物体所特有,即对其作出决策是容易的,也不会出什么差错。问题在于出现模凌两可的情况。此时,任何决策都存在判错的可能性。 条件概率:P(*|#)是条件概率的通用符号,P(wk|X)是表示在X出现条件下,样本为wk类的概率。,基于最小错误概率的贝叶斯决策理论就是按后验概率的大小作判决的 (1)后验概率:如果则,问题3:决策风险问题:基于最小错误率的贝叶斯决策,(2)如果则(3)似然比:如果 则 否则,问题3:决策风险问题:基于最小错误率的贝叶斯决策,
20、如果则否则,(4)似然比写成相应的负对数形式,例题1,假设在某地区切片细胞中正常(w1)和异常(w2)两类的先验概率分别为p(w1)=0.9,p(w2)=0.1。 现有一待识别细胞呈现出状态 x,由其类条件概率密度分布曲线查得p(x|w1)=0.2,p(x|w2)=0.4,试对细胞x进行分类。,例题1解答,利用贝叶斯公式,分别计算出状态为x时w1与w2的后验概率,问题3:决策风险问题:基于最小错误率的贝叶斯决策的证明,平均错误率:在观测值可能取值的整个范围内错误率的均值,两类判别情况,当p(w2|x)p(w1|x)时决策为w2,对观测值x有 p(w1|x)概率的错误率R1:做出w1决策的所有观
21、测值区域,条件错误概率为p(w2|x) R2:条件错误概率为p(w1|x)。因此平均错误率p(e)可表示成,在R1内任一个x值都有p(w2|x)p(w1|x),在R2区内任一个x值都有p(w1|x)p(w2|x)错误率在每个x值处都取小者,因而平均错误率p(e)也必然达到最小,这就证明了按(2-2)式作出的决策,其平均错误率为最小。p(e)也可以(2-8)式写成,错误率为图中两个划线部分之和,对应的错误率区域面积为最小。,2.2基于最小风险的贝叶斯决策,但是错误率最小并不一定是一个普遍适用的最佳选择 一个与损失有关联的,更为广泛的概念风险观测样本x实属类别j,而被判为状态i时所造成的损失, R
22、i则表示了观测值x被判为i类时损失的均值 分类则依据Ri,(i=1,.,c)中的最小值,即最小风险来定。,例:病理切片,w1表示病理切片正常 w2表示病例切片异常 p(w1|x)与p(w2|x)分别表示了两种可能性的大小,定义:,自然状态:指待识别对象的类别状态空间:由所有自然状态所组成的空间决策:不仅包括根据观测值将样本划归为哪一类别(状态),还可包括其他决策,如“拒绝“等 决策空间:有所有决策组成的空间,最小风险贝叶斯决策步骤,根据贝叶斯公式计算出后验概率:利用计算出的后验概率及决策表,计算出采取a1,i=1,., a的条件风险找出使条件风险最小的决策ak,即,例2,条件风险,两类决策方法之间的关系,基于最小错误率的决策是基于最小风险决策的一个特例 设损失函数为式中假定对c类只有c个决策,既不考虑“拒绝”等其他情况,(2-17)表明,当作出正确决策(即i=j)时没有损失,而对于任何错误决策,其损失均为1。这样定义的损失函数成为01损失函数。,两类决策方法之间的关系,根据(2-14)式条件风险为最小错误率贝叶斯决策就是0-1损失函数条件下的最小风险贝叶斯决策,图2.4,图2.3 与图2.4,总结,条件概率 贝叶斯公式 朴素贝叶斯分类算法 防止零概率:拉普拉斯校准 浮点数溢出:对概率求对数 决策风险:最小风险贝叶斯分类器,谢谢!,