欢迎来到天天文库
浏览记录
ID:36302072
大小:627.50 KB
页数:31页
时间:2019-05-08
《hadoop下的mahout的kmeans测试》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于hadoop分布式平台下的mahout中的kmeans测试山东农业大学shandongagricultureuniversity信息科学与工程学院崔文斌Timekmeans原理二、mahout下的kmeans实现三、mahout下的kmeans运行过程四、运行中的问题山东农业大学shandongagricultureuniversity主要内容一、kmeans原理山东农业大学shandongagricultureuniversitykmeans算法的原理:k-means算法接受参数k;然后将事先输入的n个数据对象划分为k个聚类以便使得所获得的聚类满足
2、:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的一、kmeans原理山东农业大学shandongagricultureuniversitykmeans算法流程:首先从n个数据对象任意选择k个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数.k
3、个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。一、kmeans原理山东农业大学shandongagricultureuniversitykmeans算法的原理:输入:k,data[n];(1)选择k个初始中心点,例如c[0]=data[0],…c[k-1]=data[k-1];(2)对于data[0]….data[n],分别与c[0]…c[k-1]比较,假定与c[i]差值最少,就标记为i;(3)对于所有标记为i点,重新计算c[i]={所有标记为i的data[j]之和}/标记为i的个数;(4)重复(2)(3),直到所有c[i]值的变化小于
4、给定阈值。二、mahout下的kmeans实现山东农业大学shandongagricultureuniversity1、概述:mahout下的kmeans算法实在kmeans与hadoop中间加上了一个中间层来建立kmeans与hadoop之间的联系,实现kmeans的mapreduce的任务的分配等工作。kmeans中的核心代码没有变化二、mahout下的kmeans实现山东农业大学shandongagricultureuniversity2、具体实现过程:2.1、参数input指定待聚类的所有数据点,clusters指定初始聚类中心如果指定参数k,由org
5、.apache.mahout.clustering.kmeans.RandomSeedGenerator.buildRandom通过org.apache.hadoop.fs直接从input指定文件中随机读取k个点放入clusters中二、mahout下的kmeans实现山东农业大学shandongagricultureuniversity2.2、根据原数据点和上一次迭代(或初始聚类)的聚类中心计算本次迭代的聚类中心,输出到clusters-N目录下。该过程由org.apache.mahout.clustering.kmeans下的KMeansMapperKM
6、eansCombinerKMeansReducerKMeansDriver实现KMeansMapper:在configure中初始化mapper时读入上一次迭代产生或初始聚类中心(每个mapper都读入所有的聚类中心);map方法对输入的每个点,计算距离其最近的类,并加入其中输出key为该点所属聚类ID,value为KMeansInfo实例,包含点的个数和各分量的累加和二、mahout下的kmeans实现山东农业大学shandongagricultureuniversityKMeansCombiner:本地累加KMeansMapper输出的同一聚类ID下的
7、点个数和各分量的和KMeansReducer:累加同一聚类ID下的点个数和各分量的和,求本次迭代的聚类中心;并根据输入Delta判断该聚类是否已收敛:上一次迭代聚类中心与本次迭代聚类中心距离8、kmeans实现山东农业大学shand
8、kmeans实现山东农业大学shand
此文档下载收益归作者所有