首页 > 代码库 > Mahout初步认识
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初步认识