Mahout中的bayes实现分为三部分,
1. 样本构建; 通过org.apache.mahout.classifier.BayesFileFormatter来实现,它将一组文件转换成label\t term1 term2 term3 …这样的格式,供后面分类器构造和分类时使用; 代码分析在前几篇博文中提供了;
2. 训练; 通过org.apache.mahout.classifier.bayes.TrainClassifier实现,它会调用BayesDriver来构建的map reduce类,它们会生成Bayes中间的参数信息,供分类时使用;
3. 测试分类; 通过 org.apach.mahout.classifier.bayes.TestClassifier 实现,它分为串行执行和并行执行两种; 这部分分类前要先调用org.apache.mahout.classifier.bayes.datastore中的一个DataStore类型,由于笔者对于HBase不了解,所以会在后面介绍InMemoryBayesDatastore这个类,它会在分类前被初始化,初始化的对象中保存了在第二步得到的中间参数信息。
BayesFileFormatter源码注释:http://anqiang1900.blog.163.com/blog/static/11418886420103252411298/
BayesFeatureMapper:http://anqiang1900.blog.163.com/blog/static/11418886420103643818519/
BayesTfIdfMapper:http://anqiang1900.blog.163.com/blog/static/11418886420103644331747/
BayesWeightSummerMapper:http://anqiang1900.blog.163.com/blog/static/11418886420103644648280/