首页 > 代码库 > Mahout初步认识

Mahout初步认识

Apache Mahout项目主要包括以下五个部分:
频繁模式挖掘:挖掘数据中频繁出现的项集。
聚类:将诸如文本、文档之类的数据分成局部相关的组。
分类:利用已经存在的分类文档训练分类器,对未分类的文档进行分类。
推荐引擎(协同过滤):获得用户的行为并从中发现用户可能喜欢的事务。
频繁子项挖掘:利用一个项集(查询记录或购物目录)去识别经常一起出现的项目。

在Mahout实现的机器学习算法:

算法类

算法名

中文名

分类算法

Logistic Regression

逻辑回归

Bayesian

贝叶斯

SVM

支持向量机

Perceptron

感知器算法

Neural Network

神经网络

Random Forests

随机森林

Restricted Boltzmann Machines

有限波尔兹曼机

聚类算法

Canopy Clustering

Canopy聚类

K-means Clustering

K均值算法

Fuzzy K-means

模糊K均值

Expectation Maximization

EM聚类(期望最大化聚类)

Mean Shift Clustering

均值漂移聚类

Hierarchical Clustering

层次聚类

Dirichlet Process Clustering

狄里克雷过程聚类

Latent Dirichlet Allocation

LDA聚类

Spectral Clustering

谱聚类

关联规则挖掘

Parallel FP Growth Algorithm

并行FP Growth算法

回归

Locally Weighted Linear Regression

局部加权线性回归

降维/维约简

Singular Value Decomposition

神秘值分解

Principal Components Analysis

主成分分析

Independent Component Analysis

独立成分分析

Gaussian Discriminative Analysis

高斯判别分析

进化算法

并行化了Watchmaker框架

 

推荐/协同过滤

Non-distributed recommenders

Taste(UserCF, ItemCF, SlopeOne)

Distributed Recommenders

ItemCF

向量相似度计算

RowSimilarityJob

计算列间相似度

VectorDistanceJob

计算向量间距离

非Map-Reduce算法

Hidden Markov Models

隐马尔科夫模型

集合方法扩展

Collections

扩展了java的Collections类



Mahout既可以在本地模式下运行,还可以利用Hadoop的MR运行作业。

Mahout API分为以下几部分:

org.apache.mahout.cf.taste:基于协同过滤的Taste相关的API。
org.apache.mahout.clustering:聚类算法相关的API
org.apache.mahout.classifier:分类算法
org.apache.mahout.fpm:频繁模式算法
org.apache.mahout.math:数学计算相关算法
org.apache.mahout.vectorizer:向量计算相关算法


1.KMeansConfigKeys接口

DISTANCE_MEASURE_KEY:K-Means聚类算法使用的距离测量方法
CLUSTER_CONVERGENCE_KEY:K-Means聚类算法的收敛值
CLUSTER_PATH_KEY:K-Means聚类算法的路径

2.KCLUSTER类
通常被主函数调用,通过给定的新聚类中心和距离函数来计算新的聚类,
并判断聚类是否收敛。

类KCLUSTER的主要函数列表

KCLUSTER(Vertor center,int clusterId,DistanceMeasure mesure)
:初始化K-Means聚类算法的构造方法,使用输入的点作为聚类的中心
来创建一个新的聚类。参数measure用于比较点之间的距离,center
为新的聚类中心,clusterId为新聚类的ID

public static String formatCluster(Kcluster cluster)
:格式化输出


public boolean computeConvergence(DistanceMeasure measure,
double convergenceDelta)
:计算该聚类是否收敛




3.KMeansDriver类
该类为执行聚类的入口函数,包括buildClusters、clusterData、
run及main等函数,


函数列表:
public static void run(org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.fs.Path input,org.apache.hadoop.fs.Path clusterIn,
org.apache.hadoop.fs.Path output,DistanceMeasure measure,double convergenceDelta,
int maxIterations,boolean runClustering,double clusterClassificationThreshold,
boolean runClustering,double clusterClassificationThreshold,boolean runSequential)
throws IOException,InterruptedException,ClassNotFoundException
参数的意义:
conf,输入点的目录路径名
input,初始化计算的输入点所在路径名
clustersIn,初始化及计算聚类的路径
output,输出聚类点的路径名
measure,距离测算法的类名
convergenceDelta,收敛值
maxIterations,最大迭代次数
runClustering,迭代完成之后是否继续聚类
clusterClassificationThreshold,低于该值的点将不会参数聚类
runSequential,是否执行sequential算法

Mahout初步认识