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