Mahout中实现了不少分布式数据挖掘算法,协同推荐,分类聚类算法,协同推荐前段时间看了一下,大概明白了里面的原理,想来也不是高不可攀的东西。
这几天要回学校了,在公司也没有多少事情,所以就查看了一些bayes方面的代码,如果有时间的话,在看看聚类以及RandomForest算法的一些实现。
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这个类,它会在分类前被初始化,初始化的对象中保存了在第二步得到的中间参数信息。
后面会逐步将与上面几步相关的代码注释贴出来,以备后用。
http://anqiang1900.blog.163.com/blog/static/1141888642010373345947/