朴素贝叶斯分类算法及其MapReduce实现(共7页)_第1页
朴素贝叶斯分类算法及其MapReduce实现(共7页)_第2页
朴素贝叶斯分类算法及其MapReduce实现(共7页)_第3页
朴素贝叶斯分类算法及其MapReduce实现(共7页)_第4页
朴素贝叶斯分类算法及其MapReduce实现(共7页)_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、最近发现很多公司招聘数据挖掘的职位都提到贝叶斯分类,其实我不太清楚他们是要求理解贝叶斯分类算法,还是要求只需要通过工具(SPSS,SAS,Mahout)使用贝叶斯分类算法进行分类。反正不管是需求什么都最好是了解其原理,才能知其然,还知其所以然。我尽量简单的描述贝叶斯定义和分类算法,复杂而有全面的描述参考“数据挖掘:概念与技术”。贝叶斯是一个人,叫(Thomas Bayes),下面这哥们就是。本文介绍了贝叶斯定理,朴素贝叶斯分类算法及其使用MapReduce实现。贝叶斯定理首先了解下贝叶斯定理PHX=PXHP(H)P(X)是不是有感觉都是符号看起来真复杂,我们根据下图理解贝叶斯定理。这里D是所有

2、顾客(全集),H是购买H商品的顾客,X是购买X商品的顾客。自然XH是即购买X又购买H的顾客。P(X) 指先验概率,指所有顾客中购买X的概率。同理P(H)指的是所有顾客中购买H的概率,见下式。PX= XDPH= HDP(H|X) 指后验概率,在购买X商品的顾客,购买H的概率。同理P(X|H)指的是购买H商品的顾客购买X的概率,见下式。PH|X= XHXPX|H= XHH将这些公式带入上面贝叶斯定理自然就成立了。朴素贝叶斯分类分类算法有很多,基本上决策树,贝叶斯分类和神经网络是齐名的。朴素贝叶斯分类假定一个属性值对给定分类的影响独立于其他属性值。描述:这里有个例子假定我们有一个顾客X(age =

3、middle,income=high,sex =man):· 年龄(age)取值可以是:小(young),中(middle),大(old)· 收入(income)取值可以是:低(low),中(average),高(high)· 性别(sex)取值可以是:男(man),女(woman)其选择电脑颜色的分类标号H:白色(white),蓝色(blue),粉色(pink)问题:用朴素贝叶斯分类法预测顾客X,选择哪个颜色的分类标号,也就是预测X属于具有最高后验概率的分类。解答:Step 1也就是说我们要分别计算X选择分类标号为白色(white),蓝色(blue),粉色(pi

4、nk)的后验概率,然后进行比较取其中最大值。根据贝叶斯定理PHwhiteX=PXHwhiteP(Hwhite)P(X)同理PHblueX=PXHblueP(Hblue)P(X)PHpinkX=PXHpinkP(Hpink)P(X)Step 2其中P(X)为常数。D为全集元组数,Hwhite,D为全集中分类标号为white的元组数。PHwhite= Hwhite,DD同理PHblue= Hblue,DDPHpink= Hpink,DDStep 3那么只需计算PXHwhite就可以了。PXHblue,PXHpink同理就不在进行阐述。对于许多属性的集,PXHwhite有可能是缺失的,对于多个X的计

5、算开销可能非常大,那么根据朴素贝叶斯分类假定一个属性值对给定类的影响独立于其他属性值。PXHwhite=k=13Px1Hwhite=Pxage=middleHwhite×Pxincome=highHwhite×Pxsex=manHwhite可以很容易的由训练元组得出:Pxage=middleHwhitePxincome=highHwhitePxsex=manHwhiteStep 4PHwhiteX,, PHblueX,,PHpinkX后验概率中最大的,那么它的分类标号就是X的分类标号。改进1, 目前X(年龄 = 中,收入 = 高,性别 = 男)中的属性都是分类属性,而不是连

6、续值属性,我们要处理连续值属性可以使用如下方法:Pxage=middleHwhite=gxage=middle,white,white=12e-(x-)222连续值属性xage=middle服从均值为,标准差为的高斯分布。2, 如果遇到零概率值怎么办?比如在训练元组中Pxsex=manHwhite为零,可以使用拉普拉斯校准的方法避免该问题。朴素贝叶斯分类的MapReduce实现我们通过MapReduce计算X(age = middle,income=high,sex =man)的分类标号。根据上面的推导,P(X)为常数只需计算PXHwhiteP(Hwhite),PXHblueP(Hblue),

7、PXHpinkP(Hpink)最大值即可。源文件为old:low:man:bluemiddle:high:man:whiteold:low:man:blueyonng:high:woman:whiteyoung:low:woman:pink那么如何使用一次MapReduce就计算出P(Hwhite),PxageHwhite,PxincomeHwhite,PxsexHwhite等等MapClass为 public static class MapClass extends MapReduceBase implements Mapper<LongWritable, Text, Text, I

8、ntWritable> private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException String line = value.toString(); String words = line.split(&qu

9、ot;:"); word.set("SUM"); output.collect(word, one); word.set(words3); output.collect(word, one); word.set(words0 + "-" + words3); output.collect(word, one); word.set(words1 + "-" + words3); output.collect(word, one); word.set(words2 + "-" + words3); outpu

10、t.collect(word, one); ReduceClass为: public static class Reduce extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException

11、int sum = 0; while (values.hasNext() sum += values.next().get(); output.collect(key, new IntWritable(sum); 计算结果为:SUM5blue2high-white2low-blue2low-pink1man-blue2man-white1middle-white1old-blue2pink1white2woman-pink1woman-white1yonng-white1young-pink1根据朴素贝叶斯分类法那么有PXHwhitePHwhite=Pxage=middleHwhite×Pxincome=highHwhite

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论