【Hadoop学习】之Mahout

来源:互联网 发布:先导爱知出现集数 编辑:程序博客网 时间:2024/06/05 04:03

Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,也是apache的重点项目。Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的数据量和处理性能。

对机器学习算法的分布式实现比较感兴趣,后续准备深入学习下Mahout这个项目。今天主要是把基本的环境给搭建起来了,然后跑了一个demo

主要是参照 http://itindex.net/detail/49323-mahout-%E5%AD%A6%E4%B9%A0-mahout。来搭建环境

接下来就是结合《Mahout实战》来学习Mahout的使用以及相关算法的Map-Reduce实现。在Eclipe环境下跑了一个Mahout里面推荐系统的实例,程序如下:

import org.apache.mahout.cf.taste.impl.model.file.*;import org.apache.mahout.cf.taste.impl.neighborhood.*;import org.apache.mahout.cf.taste.impl.recommender.*;import org.apache.mahout.cf.taste.impl.similarity.*;import org.apache.mahout.cf.taste.model.*;import org.apache.mahout.cf.taste.neighborhood.*;import org.apache.mahout.cf.taste.recommender.*;import org.apache.mahout.cf.taste.similarity.*;import java.io.*;import java.util.*;public class recommend {  public static void main(String[] args) throws Exception {    DataModel model = new FileDataModel(new File("intro.csv"));    UserSimilarity similarity = new PearsonCorrelationSimilarity(model);    UserNeighborhood neighborhood =      new NearestNUserNeighborhood(2, similarity, model);    Recommender recommender = new GenericUserBasedRecommender(        model, neighborhood, similarity);    List<RecommendedItem> recommendations =        recommender.recommend(1, 1);    for (RecommendedItem recommendation : recommendations) {      System.out.println(recommendation);    }  }}

在建立工程之后,尝试运行,肯定会报错,因为还没有导入任何相关Jar包。本例需要导入以下jar包,这些包都可以在Mahout的安装目录及其lib目录下找到:
这里写图片描述

最后显示运行结果:RecommendedItem[item:104, value:4.257081]
那么这个实例就算正常运行了。

0 0
原创粉丝点击