Mahout深度解析
文章平均质量分 88
解析Mahout的所有算法
mark_yueye
热衷于技术提升,热爱编程。
展开
-
Mahout推荐算法之ItemBased
基于item的推荐是常用并且高效的一种推荐方式,最重要的是它可以做实事推荐。原创 2014-10-11 13:08:01 · 3639 阅读 · 0 评论 -
Mahout推荐算法之SlopOne
Mahout推荐算法之SlopOne原创 2014-10-11 09:35:27 · 3076 阅读 · 0 评论 -
Mahout canopy聚类
Canopy有消除孤立点的作用,而K-means在这方面却无能为力。建立canopies之后,可以删除那些包含数据点数目较少的canopy,往往这些canopy是包含孤立点的。根据canopy内点的数目,来决定聚类中心数目k,这样效果比较好。 在执行Canopy之前需要用将文本合并,然后用Mahout文本向量化模块计算TFIDF,作为文本向量。向量化之后再用Canopy算法聚类。原创 2014-05-23 15:37:53 · 2061 阅读 · 0 评论 -
Mahout kmeans聚类
K-means算法是最为经典的基于划分的聚类方法,是十大经典数据挖掘算法之一。K-means算法的基本思想是:以空间中k个点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。Mahout kmeans MapReduce实现的原理和上述的一致,值得注意的是,Mahout将数据存储在HDFS,用MapReduce做批量并行的计算。在做kmeans之前,需要将文本用Mahout向量化模块工具做向量化。计算过程主要分为三个步骤:初始中心选取,寻找簇中心,划分数原创 2014-05-23 15:41:52 · 3658 阅读 · 1 评论 -
Mahout 模糊kmeans
FCM 算法用一个Job寻找cluster的中心点。在map的初始化节点,加载初始化(或上一轮迭代的结果)中心点。在map中计算point 和每一个簇的亲和度。在combiner计算同一个cluster的参数,该过程只能计算同一cluster的局部信息。在reduce中首先计算同一个cluster的全局参数,然后计算该cluster是否收敛,输出cluster。原创 2014-05-23 15:52:27 · 2384 阅读 · 0 评论 -
Mahout文本向量化
在文本聚类之前,首先要做的是文本的向量化。该过程涉及到分词,特征抽取,权重计算等等。Mahout 提供了文本向量化工具。由于Mahout 向量化算法要处理的文件是Hadoop SequenceFile ,需要将普通的文本文件转成SequenceFile格式,然后在向量化。SequenceFilesFromDirectory.main(args);原创 2014-05-22 10:43:02 · 2384 阅读 · 0 评论 -
Mahout决策森林
在机器学习中,随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定。Leo Breiman和Adele Cutler发展出推论出随机森林的算法。 而 "Random Forests" 是他们的商标。 这个术语是1995年由贝尔实验室的Tin Kam Ho所提出的随机决策森林(random decision forests)而来的。这个方法则是结合 Breimans 的 "Bootstrapaggregating" 想法和 Ho 的"randomsubspace method原创 2014-05-22 10:45:28 · 2265 阅读 · 0 评论 -
Mahout朴素贝叶斯文本分类
Mahout贝叶斯分类器按照官方的说法,是按照《Tackling the PoorAssumptions of Naive Bayes Text Classiers》实现的。分为三个模块:训练、测试和分类。该文档首先简要介绍朴素贝叶斯的基本原理,然后介绍MapReduce实现的思路。原创 2014-05-22 10:53:33 · 3531 阅读 · 0 评论 -
Mahout fp-growth
Apriori算法的一个主要瓶颈在于,为了获得较长的频繁模式,需要生成大量的候选短频繁模式。FP-Growth算法是针对这个瓶颈提出来的全新的一种算法模式。目前,在数据挖掘领域,Apriori和FP-Growth算法的引用次数均位列三甲。参看论文《Mining Frequence PatternsWithout Candidate Generation》 。FP的全称是Frequent Pattern,在算法中使用了一种称为频繁模式树(Frequent Pattern Tree)的数据结构。FP-tre原创 2014-05-22 11:05:36 · 2796 阅读 · 0 评论 -
Mahout LDA 聚类
Dirichlet聚类是一种基于模型的聚类方法,其基本思想是初始化一些模型,并按不同比重混合起来,然后我们把数据分配到各个模型中,根据当前划分更新模型参数,不断重复数据分配和参数更新的过程,直到设定的最大迭代次数,这时得到了最终的模型参数,同时也完成了聚类任务。原创 2014-05-22 12:42:31 · 3849 阅读 · 0 评论 -
mahout系列----Dirichlet 分布
mahout系列----Dirichlet 聚类转载 2013-12-05 09:47:03 · 1080 阅读 · 0 评论 -
mahout系列----minhash聚类
mahout系列----minhash聚类原创 2013-12-05 00:25:19 · 1332 阅读 · 0 评论 -
mahout系列之---谱聚类
mahout谱聚类原创 2013-12-05 00:05:06 · 1609 阅读 · 0 评论 -
Mahout 算法
Mahout 包括协同过滤,基于User和Item的推荐;kmeans、Fuzzy-kmeans 、Mean shift 、Dirichlet process 、LDA聚类;奇异值分解;并行频繁项集挖掘;补充的贝叶斯分类、随机森林决策树分类。一、分类算法(一)Logistic 回归(SGD)(二)Bayesian (三)SVM(四)Perceptron 和Win原创 2013-11-08 16:59:55 · 1695 阅读 · 0 评论 -
Mahout系列之----kmeans 聚类
Kmeans是最经典的聚类算法之一,它的优美简单、快速高效被广泛使用。Kmeans算法描述输入:簇的数目k;包含n个对象的数据集D。输出:k个簇的集合。方法:从D中任意选择k个对象作为初始簇中心;repeat;根据簇中对象的均值,将每个对象指派到最相似的簇;更新簇均值,即计算每个簇中对象的均值;计算准则函数;until准则函数不在发生变化。Kmeans 算法的优缺点原创 2013-11-09 14:32:11 · 2503 阅读 · 1 评论 -
Mahout 系列之--canopy 算法
Canopy 算法,流程简单,容易实现,一下是算法(1)设样本集合为S,确定两个阈值t1和t2,且t1>t2。(2)任取一个样本点p属于S,作为一个Canopy,记为C,从S中移除p。(3)计算S中所有点到p的距离dist(4)若dist(5)若dist(6)重复(2)~(5),直至S为空。上面的过程可以看出,distMahout canopy 聚类流程如下:原创 2013-11-09 14:07:13 · 1168 阅读 · 0 评论 -
Mahout系列之-----相似度
Mahout推荐系统中有许多相似度实现,这些组件实现了计算不能User之间或Item之间的相似度。对于数据量以及数据类型不同的数据源,需要不同的相似度计算方法来提高推荐性能,在mahout提供了大量用于计算相似度的组件,这些组件分别实现了不同的相似度计算方。 User 相似度: Item 相似度:皮尔森相关度类名:PearsonCorrelati原创 2013-11-09 13:08:57 · 1088 阅读 · 0 评论 -
Mahout系列之----距离度量
x = (x1,...,xn) 和y = (y1,...,yn) 之间的距离为 (1)欧氏距离 EuclideanDistanceMeasure (2)曼哈顿距离 ManhattanDistanceMeasure (3)马氏距离MahalanobisDistanceMeasure马氏距离是由印度统计学家马哈拉诺比斯提出的,表示数据的原创 2013-11-09 13:01:20 · 1586 阅读 · 0 评论 -
Mahout系列之----共轭梯度预处理
对于大型矩阵,预处理是很重要的.常用的预处理方法有: (1) 雅克比预处理 (2)块状雅克比预处理 (3)半LU 分解 (4)超松弛法原创 2013-11-09 12:21:42 · 2005 阅读 · 0 评论 -
Mahout 系列之----共轭梯度
无预处理共轭梯度 要求解线性方程组 ,稳定双共轭梯度法从初始解 开始按以下步骤迭代:任意选择向量 使得,例如,对 若 足够精确则退出预处理共轭梯度预处理通常被用来加速迭代方法的收敛。要使用预处理子 来求解线性方程组,预处理稳定双共轭梯度法从初始解 开始按以下步骤迭代:任原创 2013-11-08 17:58:41 · 1479 阅读 · 0 评论