机器学习-朴素贝叶斯学习-原理分析与C语言代码实现.doc
上传人:佳晨****ng 上传时间:2024-09-12 格式:DOC 页数:9 大小:182KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

机器学习-朴素贝叶斯学习-原理分析与C语言代码实现.doc

机器学习-朴素贝叶斯学习-原理分析与C语言代码实现.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

机器学习-朴素贝叶斯学习-原理分析与C语言代码实现机器学习-朴素贝叶斯学习-原理分析与C语言代码实现机器学习-朴素贝叶斯学习-原理分析与C语言代码实现PAGE\*MERGEFORMAT1数据挖掘课程大作业题目:机器学习—朴素贝叶斯班级:信管2014-2班指导教师:汪传建日期:2017年11月21日机器学习—朴素贝叶斯学习原理分析与C语言代码实现一,任务介绍本文介绍朴素贝叶斯学习的基本原理以及其算法实现的C语言代码。朴素贝叶斯学习也叫朴素贝叶斯分类器,它是根据贝叶斯法则进行学习的一种算法。贝叶斯法则是条件概率相互计算的法则,即在已知P(A|B)的情况下怎么计算P(B|A).P(A|B)是条件概率,表示在条件B成立的条件下条件A发生的概率,贝叶斯法则的表达式如下:即在条件A成立的条件下条件B发生的概率,等于条件B成立的条件下条件A发生的概率,乘以条件B发生的概率,再除以条件A发生的概率.朴素贝叶斯学习器(分类器)就是需要计算在某个样例条件下,计算每个目标属性项发生的概率,然后选出概率最大的目标属性。举例说明,假设现在我们在已知某一天气候的情况下(用weather表示),需要确定是否打网球(用yes和no表示)。朴素贝叶斯分类器就是要计算在已知weather的条件下,打网球的概率P(yes|weather)和P(no|weather),如果前者大于后者,就去打网球,否则就不去打网球。二,朴素贝叶斯学习器的原理说明根据前面的介绍,朴素贝叶斯学习器就是需要计算在已知气候的情况下,分别计算出打网球的概率和不打网球得概率,然后选择概率大者作为最终的学习(分类)结果。在这里,气候weather用四个属性表示,分别是Outlook(天气)、Temperature(温度)、Humidity(湿度)和Wind(风强度)。先用贝叶斯公式表示为:称vMAP为在给定实例的属性值(weather的各属性值)下,得到的最可能的目标值,也就是条件概率最大的值.其中V={yes,no},也就是说vMAP为目标属性集V中各取值(yes或no)的概率最大的。朴素贝叶斯学习器即使根据上面的公式推导而来.现在我们根据贝叶斯法则重写上面的公式:要作一些相应的假定,即给定目标值时,各属性值之间的相互条件独立。我们把weather用{Outlook,Temperature,Humidity,Wind}表示,把式3重写为:根据假定,给定目标值时,某气候下的概率就等于给定该目标值时各属性的概率的乘积:P(Outlook,Temperature,Humidity,Wind|vj)=P(Outlook|vj)*P(Temperature|Vj)*P(Humidity|vj)*P(Wind|vj)……………………………5把式5带入式4中就得到我们要求的朴素贝叶斯的表达式:三,示例为了能更进一步了解朴素贝叶斯学习的原理,我们用一个示例来加以说明。该示例用表1中的数据作为训练样例,然后根据表达式6对测试样例进行朴素贝叶斯分类,测试样例如下:weather={Outlook=sunny,Temperature=cool,Humidity=high,Winds=strong};DayOutlookTemperatureHumidityWindPlayTennisDlSunnyHotHighWeakNoD2SunnyHotHighStrongNoD3OvercastHotHighWeakYesD4RainMildHighWeakYesD5RainCoolNormalWeakYesD6RainCoolNormalStrongNoD7OvercastCoolNormalStrongYesD8SunnyMildHighWeakNoD9SunnyCoolNormalWeakYesDl0RainMildNormalWeakYesDl1SunnyMildNormalStrongYesDl2OvercastMildHighStrongYesDl3OvercastHotNormalWeakYesDl4RainMildHighStrongNo表1:朴素贝叶斯学习起使用的训练样例我们先计算P(Vj)的值,Vj有两个值,yes和no:P(yes)=9/14=0。643,P(no)=5/14=0。357.然后分别计算在目标属性为yes和no时,测试样例的各个属性的条件概率。注意,我们在计算各个属性的条件概率时,采用了m-估计的方法计算。比如在计算P(sunny|yes)(目标属性为yes,Outlook的属