美文网首页
Apache Mahout:经典机器学习算法库

Apache Mahout:经典机器学习算法库

作者: 资深程序员 | 来源:发表于2018-11-14 11:10 被阅读0次

    Mahout 是 Apache Software Foundation旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用 Apache Hadoop 库,Mahout 可以有效地扩展到云中。

    主要特性

    Apache Mahout 运行环境包括

    针对分布式的优化

    支持Scala API

    支持线性代数操作

    支持Scalak扩展

    支持IScala REPL的交互式shell

    集成MLLib库

    可以运行在 Spark、H2O和Flink上

    支持稀疏矩阵和向量的加速计算

    和Apache Zeppelin整合转换矩阵tsv

    Apache Mahout Samsara 算法包括

    随机矩阵的奇异值分解算法ssvd、dssvd

    随机主成分分析算法(spca、dspca)

    分布式Cholesky QR(thinQR)

    分布式正则化交替最小二乘法(dals)

    协同过滤算法::Item和Row的相似性

    朴素贝叶斯分类算法

    核心分布算法

    我们可以使用Maven很方便地使用它:

    从官网下载Maven,解压到本地,并配置环境变量,过程省略。

    2. 在eclipse中配置maven

    3. 新建一个Maven Project

    4.修改项目的pom.xml,默认已经有junit依赖了,我们只需要添加:

    XHTML

    <dependency>

    <groupId>org.apache.mahout</groupId>

    <artifactId>mahout-core</artifactId>

    <version>0.9</version>

    </dependency>

    <dependency>

    <groupId>org.slf4j</groupId>

    <artifactId>slf4j-simple</artifactId>

    <version>1.7.12</version>

    </dependency>

    保存后,选择Run As->Maven Clean,大约7s后,相关包下载完成。

    5.新建一个UserCF类测试基于用户的协同过滤算法:

    Java

    public class UserCF {

    final static int NEIGHBORHOOD_NUM = 2;

    final static int RECOMMENDER_NUM = 3;

    public static void main(String[] args) throws IOException, TasteException {

    String path = UserCF.class.getClassLoader().getResource("").getPath();

    String file = "/data/item.csv";

    DataModel model = new FileDataModel(new File(path+file));

    UserSimilarity user = new EuclideanDistanceSimilarity(model);

    NearestNUserNeighborhood neighbor = new NearestNUserNeighborhood(NEIGHBORHOOD_NUM, user, model);

    Recommender r = new GenericUserBasedRecommender(model, neighbor, user);

    LongPrimitiveIterator iter = model.getUserIDs();

    while (iter.hasNext()) {

    long uid = iter.nextLong();

    List<RecommendedItem> list = r.recommend(uid, RECOMMENDER_NUM);

    System.out.printf("uid:%s", uid);

    for (RecommendedItem ritem : list) {

    System.out.printf("(%s,%f)", ritem.getItemID(), ritem.getValue());

    }

    System.out.println();

    }

    }

    }

    数据为: item.csv

    1,101,5.0

    1,102,3.0

    1,103,2.5

    2,101,2.0

    2,102,2.5

    2,103,5.0

    2,104,2.0

    3,101,2.5

    3,104,4.0

    3,105,4.5

    3,107,5.0

    4,101,5.0

    4,103,3.0

    4,104,4.5

    4,106,4.0

    5,101,4.0

    5,102,3.0

    5,103,2.0

    5,104,4.0

    5,105,3.5

    5,106,4.0

    6.运行输出为:

    总结:maven在研究开源项目的时候的确很方便,同时要研究推荐算法,还必须对mahout源码进一步研究。

    参考文档:http://mahout.apache.org/developers/developer-resources.html

    官方网站:http://mahout.apache.org/

    开源地址:https://github.com/apache/mahout

    相关文章

      网友评论

          本文标题:Apache Mahout:经典机器学习算法库

          本文链接:https://www.haomeiwen.com/subject/lsfztqtx.html