13.3 Mahout API简介

当前Mahout最新版本的API为Mahout Core 0.7-SNAPSHOT API[1],它主要可以分为以下几部分:8

基于协同过滤的Taste相关的API,包名以org.apache.mahout.cf.taste开始;

聚类算法相关的API,包名以org.apache.mahout.clustering开始;

分类算法,包名以org.apache.mahout.classifier开始;

频繁模式算法,包名以org.apache.mahout.fpm开始;

数学计算相关算法,包名以org.apache.mahout.math开始;

向量计算相关算法,包名以org.apache.mahout.vectorizer开始。

在新的版本中,Mahout已经实现了数据挖掘中较常见算法,包括:频繁模式挖掘、聚类、分类以及推荐引擎,另外,还实现了数据挖掘中常用的预处理算法。

Apache Mahout已经实现的聚类算法有:Canopy聚类算法、K-Means聚类算法、模糊K-Means聚类算法、Mean Shift聚类算法、Dirichlet过程聚类算法和Latent Dirichlet Allocation聚类算法。这些算法相关的API都可以在org.apache.mahout.clustering包中找到。

下面以K-Means算法为例进行介绍。K-Means算法的API在org.apache.mahout.clustering.kmeans包中,一共包含1个接口和3个类[2]。它们分别是KMeansConfigKeys、KCluster、KMeansDriver和RandomSeedGenerator。

1.KMeansConfigKeys接口

接口KMeansConfigKeys一共有三个参数:DISTANCE_MEASURE_KEY、CLUSTER_CONVERGENCE_KEY、CLUSTER_PATH_KEY,每个参数的具体意义如表13-1所示。

13.3 Mahout API简介 - 图1

2.KCluster类

该类通常被主函数调用,通过给定的新聚类中心和距离函数来计算新的聚类,并判断聚类是否收敛。如表13-2所示为类KCluster的主要函数列表:

13.3 Mahout API简介 - 图2

3.KMeansDriver类

该类为执行聚类操作的入口函数,包括buildClusters、clusterData、run及main等函数,如表13-3所示为类KMeansDriver的主要函数列表:

对于详细的类介绍,请大家自行查阅Mahout API文档。

13.3 Mahout API简介 - 图3

[1]https://builds.apache.org/hudson/job/Mahout-Quality/javadoc。

[2]在Mahout Core 0.3 API中,该包一共包含1个接口和8个类,在0.7版本中,对其进行了简化。