13.1 Mahout简介

Apache Mahout起源于2008年,当时它是Apache Lucene的子项目。使用Apache Hadoop库,可以将其功能有效地扩展到Apache Hadoop云平台中。Apache Lucene是一个著名的开源搜索引擎,它实现了先进的信息检索、文本挖掘功能。在计算机科学领域中,这些概念与机器学习技术相近。正是由于这种原因,一些Apache Lucene的开发者最终转入开发机器学习算法中来。进而,这些机器学习算法形成了最初的Apache Mahout。不久以后,Apache Mahout吸收了一个名为Taste的开源协同过滤算法的项目,经过两年的发展,2010年4月Apache Mahout最终成为了Apache的顶级项目。

Apache Mahout的主要目标是建立可伸缩的机器学习算法。这种可伸缩性是针对大规模的数据集而言的。Apache Mahout的算法运行在Apache Hadoop平台下,它通过MapReduce模式实现。但是,Apache Mahout并不严格要求算法的实现要基于Hadoop平台,单个节点或非Hadoop平台也可以。Apache Mahout核心库的非分布式算法也具有良好的性能。

Apache Mahout是Apache Software Foundation(ASF)旗下的一个开源项目,提供了一些经典的机器学习算法,旨在帮助开发人员更加方便快捷地创建智能应用程序。该项目已经发展到了它的第三个年头,有了三个公共发行版本。Apache Mahout项目包含聚类、分类、推荐引擎、频繁子项挖掘。Apache Mahout虽已经实现了很多技术和算法,但是仍然还有一些算法正在开发和测试阶段。目前Apache Mahout项目主要包括以下五个部分。

频繁模式挖掘:挖掘数据中频繁出现的项集。

聚类:将诸如文本、文档之类的数据分成局部相关的组。

分类:利用已经存在的分类文档训练分类器,对未分类的文档进行分类。

推荐引擎(协同过滤):获得用户的行为并从中发现用户可能喜欢的事物。

频繁子项挖掘:利用一个项集(查询记录或购物目录)去识别经常一起出现的项目。