书签 分享 收藏 举报 版权申诉 / 67
上传文档赚钱

类型机器学习及应用第6章-贝叶斯分类器课件.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:3581337
  • 上传时间:2022-09-20
  • 格式:PPTX
  • 页数:67
  • 大小:2.41MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《机器学习及应用第6章-贝叶斯分类器课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    机器 学习 应用 贝叶斯 分类 课件
    资源描述:

    1、第06章 贝叶斯分类器p贝叶斯定理p朴素贝叶斯算法p极大似然估计p贝叶斯网络pEM算法6.1 引言n 计算机科学家和统计学家都会利用样本数据集训练计算机,使之能进行判断和推理。计算机科学家主要关心这些推理方法如何在计算机上有效地实现,而统计学家主要关心如何构建一个使用这些数据进行逻辑推理和判断的数学框架。n 如果对某个过程缺乏先验知识,这时可以将其视作一个随机过程,使用概率理论来分析。例如,投掷硬币就是一个典型的随机过程,因为我们不能预测任意一次投币的结果是正面还是反面,而只能谈论下一次投币是正面或反面的概率。6.1 引言6.1 引言1763年6.1 引言6.1 引言 1|iiiiNjjjP

    2、ABP A B P BP BAP AP A BP B6.2 朴素贝叶斯分类n 朴素贝叶斯分类(Naive Bayes Classifier)是基于贝叶斯定理和特征条件独立假设的分类算法。n 朴素贝叶斯分类器源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。n 朴素贝叶斯模型的参数也不多,对缺失数据不太敏感,算法实现比较简单。n 通俗地讲,朴素贝叶斯分类器可以看作:对于给定的待分类项,求解在该对于给定的待分类项,求解在该分类项出现的条件下,各个类别出现的概率。根据各个类别出现的概率,分类项出现的条件下,各个类别出现的概率。根据各个类别出现的概率,哪个最大,就将其划归为那个类别。哪个最大,

    3、就将其划归为那个类别。6.2 朴素贝叶斯分类n假设样本 ,标签 。令x为X上的随机向量,y是Y上的随机向量,P(X,Y)为X和Y的联合概率分布。假定训练数据集 是由P(X,Y)独立同分布产生的,那么朴素贝叶斯算法可从训练数据集T中学习联合概率分布P(X,Y),即n先验概率分布:n条件(似然)概率分布:6.2.1 朴素贝叶斯算法,kP YckK1 2|,kP XYckKx1 2n 朴素贝叶斯算法有一个假设:在分类确定的条件下,要求分类的各个特征是条件独立的。12|,|nknknjjkjP XY=cP XxXxXxY=cP XxY=cx121 T12,nn=xxxXRx,KyYc cc12,NNT

    4、=yyyxxx11226.2 朴素贝叶斯分类根据贝叶斯定理,计算后验概率:于是,朴素贝叶斯分类器表示为:考虑分类特征的条件独立假设,有:|,|njkjkjkKjjjP YcP XxY=cP Y=cXkKP XYcP Ycxx111 2|argmax|knjkjkjKcjjjP YcP XxY=cyfP XYcP Yc11xx|argmaxknjkjkcjyfP YcP XxY=c1x由于对所有的 ,上式的分母都相同,因此可简写为:6.2 朴素贝叶斯分类6.2.2 朴素贝叶斯分类算法n准备工作阶段准备工作阶段:这一阶段的输入是所有待分类数据,输出是特征属性和训练样本。这一阶段是整个朴素贝叶斯分类

    5、中唯一需要人工完成的阶段,其质量对整个过程将有重要影响,分类器的质量很大程度上由特征属性、特征属性划分及训练样本质量决定。n分类器训练阶段分类器训练阶段:其输入是特征属性和训练样本,输出是分类器。这一阶段是机械性阶段,根据前面讨论的公式可以由程序自动计算完成。n应用应用阶段阶段:其输入是分类器和待分类项,输出是待分类项与类别的映射关系。这一阶段也是机械性阶段,由程序完成。朴素贝叶斯分类算法大致可分为三个阶段:6.2 朴素贝叶斯分类6.2.2 朴素贝叶斯分类算法6.2 朴素贝叶斯分类6.2.2 朴素贝叶斯分类算法例如,使用贝叶斯分类器对垃圾邮件进行分类和过滤。贝叶斯分类器需要依赖历史数据进行学习

    6、,假定包含关键词“中奖”的就算作垃圾邮件。先经过人工筛选找出10封邮件,并对包含关键词“中奖”的邮件标注为垃圾邮件(Spam)。序号包含关键词(“中奖”)邮件类别1NoEmail2YesSpam3YesSpam4NoEmail5NoSpam6YesSpam7NoEmail8YesEmail9NoEmail10NoEmail6.2 朴素贝叶斯分类6.2.2 朴素贝叶斯分类算法统计普通邮件和垃圾邮件中出现“中奖”关键词的频率并进行汇总,分别记录普通邮件中出现和未出现该关键词的次数和垃圾邮件中出现和未出现该关键词的次数,并分别进行汇总。EmailSpam频率Yes134No516频率6410Emai

    7、lSpam概率Yes1/6 P(Yes|Email)3/4 P(Yes|Spam)0.4 P(Yes)No5/6 P(No|Email)1/4 P(No|Spam)0.6 P(No)0.6 P(Email)0.4 P(Spam)n 根据贝叶斯定理,已知垃圾邮件中出现“中奖”关键词的概率P(Yes),垃圾邮件出现的概率P(Spam),以及垃圾邮件中有“中奖”关键词出现的概率P(Yes|Spam),那么当出现“中奖”关键词时,该邮件是垃圾邮件的概率P(Spam|Yes)为6.2 朴素贝叶斯分类6.2.2 朴素贝叶斯分类算法EmailSpam概率Yes1/6 P(Yes|Email)3/4 P(Ye

    8、s|Spam)0.4 P(Yes)No5/6 P(No|Email)1/4 P(No|Spam)0.6 P(No)0.6 P(Email)0.4 P(Spam)附:6.2 朴素贝叶斯分类6.2.3 朴素贝叶斯分类算法的Python实现DayOutlookTempHumidityWindyPlayTennisDay 1SunnyHotHighWeakNoDay 2SunnyHotHighStrongNoDay 3OvercastHotHighWeakYesDay 4RainMildHighWeakYesDay 5RainCoolNormalWeakYesDay 6RainCoolNormalSt

    9、rongNoDay 7OvercastCoolNormalStrongYesDay 8SunnyMildHighWeakNoDay 9SunnyCoolNormalWeakYesDay 10RainMildNormalWeakYesDay 11SunnyMildNormalStrongYesDay 12OvercastMildHighStrongYesDay 13OvercastHotNormalWeakYesDay 14RainMildHighStrongNon假定给定了如下表所示的训练样本数据,训练的目的是根据给定的天气状况判定是否去PlayTennis?当给出一个新的实例,如Outloo

    10、k=Sunny,Temp=Cool,Humidity=High,Windy=Strong时,那么预测的目标概念PlayTennis的目标值是Yes还是No?6.2 朴素贝叶斯分类6.2.3 朴素贝叶斯分类算法的Python实现对于样本(“Outlook”:”Sunny”,“Temp”:“Cool”,“Humidity”:“High”,“Windy”:“Strong”),计算:n 输入:以字典方式存储的(分类)天气信息,如Outlook:Sunny,Temp:Hot,Humidity:High,Windy:Weak,class:No。n 输出:类别(Yes,No)6.2 朴素贝叶斯分类6.2.3

    11、 朴素贝叶斯分类算法的Python实现6.2 朴素贝叶斯分类6.2.3 朴素贝叶斯分类算法的Python实现from numpy import*#训练朴素贝叶斯模型(仅针对属性值为离散型情况)class BayesClassifier():#简单贝叶斯分类器 def _init_(self):pass#分离数据集的属性和标签,并分别保存下来 def getFeatures(self,dataElem,Label):self.Label=Label#数据集的标签名称 self.FLists=cl for cl in dataElem#数据集的属性名称 self.FLists.remove(sel

    12、f.Label)return self.FListsn 示例程序如下:6.2 朴素贝叶斯分类6.2.3 朴素贝叶斯分类算法的Python实现#分离数据:数据集和标签 def splitData(self,dataSets):labels=clself.Label for cl in dataSets#标签数据集 features=#属性数据集 for i in range(len(dataSets):feature=for fa in dataSetsi:#处理每一个数据 if fa!=self.Label:#判断是标签,还是属性 featurefa=dataSetsifa print(fea

    13、ture)features.append(feature)return features,labels6.2 朴素贝叶斯分类6.2.3 朴素贝叶斯分类算法的Python实现#训练简单贝叶斯分类器 def train(self,features,labels):self.sampleNum=len(features)#样本数目 self.countDic=#统计各个条件概率的出现次数 self.labelSet=set()#集合存放类标,如:Y=1 or Y=0 for i in range(len(labels):#统计类标不同值出现的次数 TempStr=Y=+str(labelsi)sel

    14、f.labelSet.add(str(labelsi)if TempStr in self.countDic:self.countDicTempStr+=1 else:self.countDicTempStr=1 for i in range(len(features):#统计各个条件概率组合出现的次数6.2 朴素贝叶斯分类6.2.3 朴素贝叶斯分类算法的Python实现 for fl in self.FLists:TempStr=F+str(fl)+=+str(featuresifl)+|Y=+str(labelsi)if TempStr in self.countDic:self.coun

    15、tDicTempStr+=1 else:self.countDicTempStr=1 for key in self.countDic.keys():#遍历次数统计字典计算概率 if key.find(|)!=-1:#计算条件概率P(Fi=a|Y=b)targetStr=keykey.find(|)+1:#类标字符串:Y=1 or Y=-0 self.countDickey/=self.countDictargetStr#计算条件概率P(Fi=a|Y=b)=Count(Fi=a,Y=b)/Count(Y=b)for label in self.labelSet:#计算类标概率P(Y=b)6.2

    16、 朴素贝叶斯分类6.2.3 朴素贝叶斯分类算法的Python实现 TempStr=Y=+str(label)self.countDicTempStr/=self.sampleNum def classify(self,feature):#使用训练后的贝叶斯分类器分类新样本#计算后验概率P(Y=b|Sample=feature)probabilityMap=for label in self.labelSet:TempProbability=1.0 for fl in self.FLists:TempStr=F+str(fl)+=+str(featurefl)+|Y=+label if Temp

    17、Str not in self.countDic:#遇到新的特征值,导致该概率P(Fi=a|Y=b)为0,将它校正为非0值(1/Count(Y=b)6.2 朴素贝叶斯分类6.2.3 朴素贝叶斯分类算法的Python实现 TempProbability*=(1.0/self.countDicY=+label)/self.sampleNum else:TempProbability*=self.countDicTempStr TempProbability*=self.countDicY=+label probabilityMaplabel=TempProbability maxProbabili

    18、ty=0.0 for label in self.labelSet:#选取使后验概率P(Y=b|Sample=feature)最大的类标作为目标类标 if probabilityMaplabel maxProbability:maxProbability=probabilityMaplabel targetLabel=label probabilityMap.clear()return targetLabel6.2 朴素贝叶斯分类6.2.3 朴素贝叶斯分类算法的Python实现 def _del_(self):self.countDic.clear()if _name_=_main_:#dat

    19、a data=outlookOutlook:sunnySunny,tempTemp:hotHot,humidityHumidity:highHigh,windWindy:weakWeak,class:noNo,outlookOutlook:sunnySunny,tempTemp:hotHot,humidityHumidity:highHigh,windWindy:strongStrong,class:noNo,outlookOutlook:overcastOvercast,tempTemp:hotHot,humidityHumidity:highHigh,windWindy:weakWeak,

    20、class:yesYes,outlookOutlook:rainRain,tempTemp:mildMild,humidityHumidity:highHigh,windWindy:weakWeak,class:yesYes,6.2 朴素贝叶斯分类6.2.3 朴素贝叶斯分类算法的Python实现outlookOutlook:rainRain,tempTemp:coolCool,humidityHumidity:normalNormal,windWindy:weakWeak,class:yesYes,outlookOutlook:rainRain,tempTemp:coolCool,humidi

    21、tyHumidity:normalNormal,windWindy:strongStrong,class:noNo,Outlook:Overcast,Temp:Cool,Humidity:Normal,Windy:Strong,class:Yes,Outlook:Sunny,Temp:Mild,Humidity:High,Windy:Weak,class:No,Outlook:Sunny,Temp:Cool,Humidity:Normal,Windy:Weak,class:Yes,Outlook:Rain,Temp:Mild,Humidity:Normal,Windy:Weak,class:Y

    22、es,Outlook:Sunny,Temp:Mild,Humidity:Normal,Windy:Strong,class:Yes,Outlook:Overcast,Temp:Mild,Humidity:High,Windy:Strong,class:Yes,Outlook:Overcast,Temp:Hot,Humidity:Normal,Windy:Weak,class:Yes,Outlook:Rain,Temp:Mild,Humidity:High,Windy:Strong,class:No 6.2 朴素贝叶斯分类6.2.3 朴素贝叶斯分类算法的Python实现#calculate NB

    23、C=BayesClassifier()NBC.getFeatures(data0,class)features,labels=NBC.splitData(data)NBC.train(features,labels)print(NBC.classify(outlookOutlook:sunnySunny,tempTemp:coolCool,humidityHumidity:highHigh,windWindy:strongStrong),NBC.classify(outlookOutlook:overcastOvercast,tempTemp:coolCool,humidityHumidity

    24、:normalNormal,windWindy:strongStrong)运行结果:noNo yesYes6.2 朴素贝叶斯分类6.2.4 sklearn的朴素贝叶斯方法n sklearn提供多个朴素贝叶斯分类器,他们的主要区别在于假设了不同的概率分布,下面介绍三种常用的朴素贝叶斯分类器。高斯朴素贝叶斯分类器(GaussianNB)多项式贝叶斯分类器(MultimomialNB)伯努利贝叶斯分类器(BernoulliNB)n 其函数原型为class sklearn.naive_bayes.GaussianNB(priors=None)n 参数如下:priors:数组,默认参数值为None。类的

    25、先验概率,如果指定了先验信息,则不会根据数据进行调整。6.2 朴素贝叶斯分类6.2.4 sklearn的朴素贝叶斯方法在高斯朴素贝叶斯分类器中,假设特征的条件概率分布满足高斯分布,即n 高斯朴素贝叶斯分类器(GaussianNB)6.2 朴素贝叶斯分类6.2.4 sklearn的朴素贝叶斯方法n 高斯朴素贝叶斯分类器(GaussianNB)n 参数如下:priors:数组,默认参数值为None。类的先验概率,如果指定了先验信息,则不会根据数据进行调整。n 属性有:class_prior:数组。每个类别的概率 ,形状为(n_classes,)class_count:数组。每个类别包含的训练样本数

    26、量,形状为(n_classes,)theta:数组。每个类别上每个特征的均值 ,形状为(n_classes,n_features)sigma:数组。每个类别上每个特征的标准差 ,形状为(n_classes,n_features)6.2 朴素贝叶斯分类6.2.4 sklearn的朴素贝叶斯方法n 多项式贝叶斯分类器(MultimomialNB)在多项式朴素贝叶斯分类器中,假设特征的条件概率分布满足多项式分布,即其中,表示特征 的取值,其取值个数为Sj个;,表示属于类别Ck的样本的数量 ;表示属于类别Ck且特征 的样本的数量。6.2 朴素贝叶斯分类6.2.4 sklearn的朴素贝叶斯方法n 多项

    27、式贝叶斯分类器(MultimomialNB)其函数原型为class sklearn.naive_bayes.MultinomialNB(alpha=1.0,fit_prior=True,class_prior=None)n 参数如下。alpha:浮点数,可选,默认参数值为1.0。值。fit_prior:布尔值,可选,默认参数值True。如果为True,则不去学习,以均匀分布替代;否则,学习 。class_prior:array_like数组,可选,默认参数值为None。指定每个分类的先验概率,kP yckP yc6.2 朴素贝叶斯分类6.2.4 sklearn的朴素贝叶斯方法n 主要属性如下。

    28、class_log_prior:数组。每个类别调整后的经验概率分布的对数值,形状为(n_classes,);feature_log_prob:数组。经验概率分布 的对数值,形状为(n_classes,n_features);class_count:数组。每个类别包含的训练样本数量,形状为(n_classes,);feature_count:数组。训练过程中,每个类别每个特征遇到的样本数,形状为(n_classes,n_features)。6.2 朴素贝叶斯分类6.2.4 sklearn的朴素贝叶斯方法n 伯努利贝叶斯分类器(BernoulliNB)在伯努利朴素贝叶斯分类器中,假设特征的条件概率

    29、分布满足二项分布,即1|1jjXXjkP Xyc=ppn 其函数原型为class sklearn.naive_bayes.BernoulliNB(alpha=1.0,binarize=0.0,fit_prior=True,class_prior=None)其中,要求特征的取值为6.2 朴素贝叶斯分类6.2.4 sklearn的朴素贝叶斯方法n 多项式贝叶斯分类器(MultimomialNB)n 主要参数如下。alpha:浮点数,可选,默认参数值为1.0。值。binarize:浮点数或None,可选,默认参数值为0.0。如果为None,则假设院士数据已经二元化了;如果为浮点数,则会以该数值为界,

    30、特征值大于它的取1,特征值小于它的取0。fit_prior:布尔值,可选,默认参数值为True。如果为True,则不去学习 ,以均匀分布替代;否则,学习 。class_prior:数组,大小为n_classes,,可选,默认参数值为None。指定每个分类的先验概率,。如果指定了该参数,则每个分类的先验概率将不再从数据集中学习。kP yckP yc,1,2,kP yckK6.3 极大似然估计n 假设有一个独立同分布(iid)样本 ,其中服从定义在参数 上的已知概率密度 分布。此时,希望找出这样的参数 ,使得 尽可能地像是从中抽取出来的。因为 是独立的,所以给定参数 ,样本的似然是单个点似然的乘积

    31、,即 T,nn=xxxXRx12n 极大似然估计(Maximum Likelihood Estimation,MLE)方法也称为最大似然估计。是求估计的另一种方法,1821年首先由德国数学家C.F.Gauss(高斯)提出,但是这个方法通常被归功于英国的统计学家R.A.Fisher(罗纳德费希尔),他在1922年的论文“On the mathematical foundations of theoretical statistics,reprinted in Contributions to Mathematical Statistics”中再次提出了这个思想,并且首先探讨了这种方法的一些性质。

    32、6.3 极大似然估计n 求解极大似然估计的一般步骤为:写出似然函数;对似然函数取对数,并整理;求导数,并令导数为0,得到似然方程;解似然方程,得到的参数即为所求。6.3 极大似然估计6.3.1 EM算法期望最大化(Expectation-maximization,EM)算法是一种迭代算法,用于含有隐含变量概率模型参数的极大似然估计或后验概率估计。EM算法的每一次迭代都由两部组成:E步求期望步求期望;M步计算极大值步计算极大值。对于概率模型的参数估计,可以使用极大似然估计法或贝叶斯估计法来估计模型参数,但是当模型含有隐变量时,这种方法就失效了。考虑带隐变量(其观测值为z)的参数估计问题,希望拟合

    33、出包含隐变量z的模型 中的参数 将观测数据 (亦称不完全数据)记为 不可观测数据记为 。Y和Z合在一起称为完全数据。那么观测数据的似然函数可以表示为EM算法是一种迭代算法,通过迭代的方式求取目标函数 的极大值。ln|LPY6.3 极大似然估计n 使用Jensen不等式:6.3.1 EM算法 ln|,ln|nnzLLP zPzPYYlnlnlog,0,1ijijjjjjjyy n 得到下界|,|,ln|,ln|,|,|,ln|,ln|,|,|,ln|,nnnnzznnnnznnznnP zPzLLP zP zPP zP zPz=P zP zPP zP zPzP zP|P zYYYYYYYYYYY

    34、YYY-6.3 极大似然估计6.3.1 EM算法|,|,ln|,nnnznnP zPzlLP zP|P z YYYY1argmax|,ln|,argmax|,ln,|nnznzP zP zPzP zPzYYYY6.3 极大似然估计6.3.1 EM算法6.3 极大似然估计6.3.2 EM算法步骤|,|ln,|,ln,|nnnzQ=EPz=P zPzZ YYYY 1argmax|nnQ n 假设有三枚硬币A、B、C,这些硬币正面出现的概率分别是 、p和q。进行如下掷硬币试验:先掷A,如果A是正面则再掷B,如果A是反面则再掷C。对于B或C的结果,如果是正面则记为1,如果是反面则记为0。进行N次独立重

    35、复实验,得到结果。现在只能观测到结果,不能观测到掷硬币的过程,估计模型参数 。n 实验结果是可观测数据 ,硬币A的结果是不可观测数据 且z只有两种可能取值1和0。6.3 极大似然估计6.3.3 三硬币的EM求解,=p q6.3 极大似然估计6.3.3 三硬币的EM求解11|,|,1|1,0|0,111jjjjjjjzzjjyyyyP yP yzP zP yzP zP yzP zP yzpp qqn 对于第j次试验,有1111|111jjjjNNyyyyjjjPP ypp qqY6.3 极大似然估计n E-step,求期望(Q函数)11|,ln,|,ln,|1|,ln,1|0|,ln,0|nnz

    36、NjnjjzNjnjjjjQP zPzP z yP y zP zyP y zP zyP y z YY1,11,11|,1111jjjjjjyynnnj nyyyyjnnnnnnnj n pp=zP z y ppqq 其他情况,6.3 极大似然估计n E-step,求期望(Q函数)1111,|11,jjjjyyjyypp ,zP yz qq其他情况因此,Q函数的表达式为11,1|ln11ln 11jjjjNyyyynj nj njQpp qq 6.3 极大似然估计n M-step,求Q函数的极大值令Q函数对参数求导数,并等于零。令 ,可得 所以|0nQ,11Nj nj=n1,11Nnj nj=n

    37、 11,11111,11,11,1|ln11ln 1111 110111jjjjjjjjjjNyyyynj nj njyyyyNjjj nyyjNNNj njj njjj njjQpp qqpp y pppyp=ppypyp=p-pp-p 6.3 极大似然估计令 ,可得|0nQp,1,1Nj njjNj njyp=所以 ,,11,1Nj njjnNj njyp=,11,111Nj njjnNj njyq=n 得到三个参数的迭代式,便可给定初值,迭代求解了。11,11111,11,11,1|ln11ln 1111 110111jjjjjjjjjjNyyyynj nj njyyyyNjjj nyy

    38、jNNNj njj njjj njjQpp qqpp y pppyp=ppypyp=p-pp-p n M-step,求Q函数的极大值6.3 极大似然估计6.3.4 sklearn的EM方法n sklearn提供了EM算法的实现,其函数原型如下:class sklearn.mixture.GaussianMixture(n_components=1,covariance_type=full,tol=0.001,reg_covar=1e-06,max_iter=100,n_init=1,init_params=kmeans,weights_init=None,means_init=None,pre

    39、cisions_init=None,random_state=None,warm_start=False,verbose=0,verbose_interval=10)n 其参数如下:n_components:整数,默认参数值为1。分模型的数量。covariance_type:字符串,默认参数值为“full”。协方差类型,必须是下列值之一:“spherical”:球状型,每个分模型的协方差矩阵都是一个标量值;“tied”:结点型,所有的分模型都共享一个协方差矩阵;“diag”:对角型,每个分模型的协方差矩阵都是对角矩阵;“full”:全型,每个分模型都有自己的协方差矩阵。6.3 极大似然估计6.

    40、3.4 sklearn的EM方法random_state:整数,RandomState实例或者None,默认参数值为None。precisions_init:array_like,可选,默认参数值为None。用户提供的初始precisions(协方差矩阵的逆矩阵)。如果为None,precisions初始化为“init_params”方法。根据covariance_type的不同,该参数的形状也不同,具体如下:如果covariance_type=spherical,则大小为(n_components,);如果covariance_type=tied,则大小为(n_features,n_feat

    41、ures);如果covariance_type=diag,则大小为(n_components,n_features);如果covariance_type=full,则大小为(n_components,n_features,n_features)。init_params:只能为“kmeans”“random”,默认参数值为“kmeans”。该方法用于初始化权值。6.3 极大似然估计6.3.4 sklearn的EM方法n 测试GaussianMixture的不同协方差对分类的影响,程序如下:import matplotlib as plimport matplotlib.pyplot as plt

    42、import numpy as npfrom sklearn.datasets import load_irisfrom sklearn.mixture import GaussianMixturefrom sklearn.model_selection import StratifiedKFoldcolors=navy,turquoise,darkorangedef make_ellipses(gmm,ax):for n,color in enumerate(colors):if gmm.covariance_type=full:covariances=gmm.covariances_n:2

    43、,:2 elif gmm.covariance_type=tied:covariances=gmm.covariances_:2,:2 elif gmm.covariance_type=diag:covariances=np.diag(gmm.covariances_n:2)6.3 极大似然估计 elif gmm.covariance_type=spherical:covariances=np.eye(gmm.means_.shape1)*gmm.covariances_n v,w=np.linalg.eigh(covariances)u=w0/np.linalg.norm(w0)angle=

    44、np.arctan2(u1,u0)angle=180*angle/np.pi#转换为角度 v=2.*np.sqrt(2.)*np.sqrt(v)ell=pl.patches.Ellipse(gmm.means_n,:2,v0,v1,180+angle,color=color)ell.set_clip_box(ax.bbox)ell.set_alpha(0.5)ax.add_artist(ell)iris=load_iris()#将iris数据集分为4段,75%用作训练集,剩余的25%.用作测试集skf=StratifiedKFold(n_splits=4)train_index,test_in

    45、dex=next(iter(skf.split(iris.data,iris.target)程序续6.3 极大似然估计 X_train=iris.datatrain_index#训练集的样本y_train=iris.targettrain_index#训练集的标签X_test=iris.datatest_index#测试集的样本y_test=iris.targettest_index#测试集的标签n_classes=len(np.unique(y_train)#用不同的协方差,构建不同的分类估计器estimators=dict(cov_type,GaussianMixture(n_compon

    46、ents=n_classes,covariance_type=cov_type,max_iter=20,random_state=0)for cov_type in spherical,diag,tied,full)n_estimators=len(estimators)plt.figure(figsize=(3*n_estimators/2,6)plt.subplots_adjust(bottom=.01,top=0.95,hspace=.15,wspace=.05,left=.01,right=.99)程序续6.3 极大似然估计for index,(name,estimator)in en

    47、umerate(estimators.items():estimator.means_init=np.array(X_trainy_train=i.mean(axis=0)for i in range(n_classes)#使用EM算法训练模型的其他参数 estimator.fit(X_train)h=plt.subplot(2,n_estimators/2,index+1)make_ellipses(estimator,h)for n,color in enumerate(colors):data=iris.datairis.target=n plt.scatter(data:,0,data

    48、:,1,s=0.8,color=color,label=iris.target_namesn)#用图形方式显示测试数据 for n,color in enumerate(colors):data=X_testy_test=n plt.scatter(data:,0,data:,1,marker=x,color=color)程序续6.3 极大似然估计y_train_pred=estimator.predict(X_train)train_accuracy=np.mean(y_train_pred.ravel()=y_train.ravel()*100 plt.text(0.05,0.9,Trai

    49、n accuracy:%.1f%train_accuracy,transform=h.transAxes)y_test_pred=estimator.predict(X_test)test_accuracy=np.mean(y_test_pred.ravel()=y_test.ravel()*100 plt.text(0.05,0.8,Test accuracy:%.1f%test_accuracy,transform=h.transAxes)plt.xticks()plt.yticks()plt.title(name)plt.legend(scatterpoints=1,loc=lower

    50、right,prop=dict(size=12)plt.show()程序续6.3 极大似然估计n 运行效果:6.4 贝叶斯网络6.4.1 贝叶斯网络的概念:6.4 贝叶斯网络 如果将某个系统中涉及的随机变量,根据是否条件独立绘制在一个有向图中,就形成了一个贝叶斯网络,如下图所示。在贝叶斯网络中,以圈表示随机变量(Random Variables),箭头表示条件依赖(Conditional Dependencies)。6.4 贝叶斯网络6.4.1 贝叶斯网络的构造和学习 n 构建贝叶斯网络包括以下三部分内容:变量的定义;结构学习;参数学习n 网络结构学习的目标是找到和样本数据X匹配度最好的贝叶斯

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:机器学习及应用第6章-贝叶斯分类器课件.pptx
    链接地址:https://www.163wenku.com/p-3581337.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库