mahout bayes源码分析总结
来源:互联网 发布:淘宝卖家后台登陆网址 编辑:程序博客网 时间:2024/04/30 20:46
最近在学习mahout,首先从最简单的bayes分类入手研究了一下源码,有谬误之处欢迎批评指正。
一、贝叶斯分类
条件概率P(A|B) 表示事件B已经发生的前提下,事件A发生的概率,叫做事件B发生下事件A的条件概率。其基本求解公式为P(A|B)= P(AB)/ P(B)。该公式说明了如何计算已知B发生的前提下A还要发生的概率。贝叶斯定理解决了现实生活里经常遇到的问题:已知某条件概率,如何得到两个事件交换后的概率,也就是在已知P(A|B)的情况下如何求得P(B|A)。贝叶斯定理就为我们打通从P(A|B)获得P(B|A)的道路。所以该定理的用途十分广大,可以用作数据的预测分类等。下面直接给出贝叶斯定理:
贝叶斯分类的正式定义如下:
1、设
为一个待分类项,而每个a为x的一个特征属性。
2、有类别集合
3、计算
4、如果
,则
那么现在的关键就是如何计算第3步中的各个条件概率。我们可以这么做:
1、找到一个已知分类的待分类项集合,这个集合叫做训练样本集。
2、统计得到在各类别下各个特征属性的条件概率估计。即
3、如果各个特征属性是条件独立的,则根据贝叶斯定理有如下推导:
因为分母对于所有类别为常数,因为我们只要将分子最大化皆可。又因为各特征属性是条件独立的,所以有:
也就是说我只需要计算出每一个特征向量在某一种分类的累乘然后乘以这个分类的概率。这样算出的最大值所在的分类则为需要的分类。
以上材料参考自http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html,很经典的一篇文章。
二、Mahout中bayes实现分析
1、mahout trainnb
2、mahout testnb
三、Mahout中向量实现分析
1、mahout seqdirectory
对应的源文件是org.apache.mahout.text.SequenceFilesFromDirectory。使用mahout seqdirectory命令可以将文本文件转成Hadoop 的SequenceFile文件, SequenceFile文件是一种二制制存储的key-value键值对。以邮件分类为例,mahout seqdirectory的输入是一堆分类目录,每个目录名就是类别名,目录里面包含的是属于此类的一些文档(一个文件是一篇文章);输出是一个SequenceFile文件,key-value类型是(Text,Text),每个key-value键值对的key是目录名(类别名),本目录下所有文件的内容作为value。
2、mahout seq2sparse
- mahout bayes源码分析总结
- mahout bayes源码分析总结
- mahout并行分类bayes源码分析-2
- mahout bayes中数据划分源码分析
- mahout中bayes分类分析—1
- mahout源码分析-02
- mahout itemBase 源码分析
- Mahout Canopy源码分析
- 利用mahout的Bayes算法的文本情感分析
- Mahout源码分析之DistributedLanczosSolver(7)--总结篇
- Mahout bayes分类器
- Mahout Bayes分类
- mahout分类源码分析-01
- mahout推荐引擎源码分析
- Mahout之SequenceFilesFromDirectory源码分析
- bayes 源码
- mahout测试naive Bayes算法
- mahout源码KMeansDriver分析之一整体分析
- LinuxIO模型概述
- oracle递归遍历查询
- Linux下安装LoadRunner LoadGenerator
- Linux进程间通信--共享内存与信号量
- ConcurrentHashMap原理
- mahout bayes源码分析总结
- java5线程并发库学习之Semaphore
- POJ 2202 哈希
- spring 依赖注入
- java设计模式之观察者模式
- java设计模式之单例模式
- RxJava使用场景小结
- Ag(The Silver Searcher)相关
- 向量范数和矩阵范数