开发环境:Intellij IDEA14 、Maven3.2、JDK1.7、Hadoop2.6 、mahout0.10
源码下载及运行参考:https://github.com/fansy1990/randomforest_classify
设计思路:
Mahout 随机森林算法(Random Forest)利用建立好的模型(BuildForest的输出结果)以及描述文件(Describe的输出结果),来对没有标签的数据进行分类。受TestForest中的CMapper的启发,其主要代码如下:
String line = value.toString();
if (!line.isEmpty()) {
Instance instance = converter.convert(line);
double prediction = forest.classify(dataset, rng, instance);
lkey.set(dataset.getLabel(instance));
lvalue.set(Double.toString(prediction));
context.write(lkey, lvalue);
}
可以看到一行数据value,被赋值到line,然后通过line转换为Instance,之后就可以直接使用forest.classify函数来得到实际的类别了。当然,这里classify函数得到的是实际类