HADOOP框架下高维海量数据GMM聚类方法.pdf

上传人:111****112 文档编号:1552080 上传时间:2018-06-24 格式:PDF 页数:13 大小:466.49KB
返回 下载 相关 举报
摘要
申请专利号:

CN201310047023.3

申请日:

2013.01.25

公开号:

CN103077253A

公开日:

2013.05.01

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20130125|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

西安电子科技大学

发明人:

崔江涛; 李林; 司蓁; 彭延国; 史玮; 陈煜; 崔小利; 王博

地址:

710071 陕西省西安市太白南路2号

优先权:

专利代理机构:

陕西电子工业专利中心 61205

代理人:

田文英;王品华

PDF下载: PDF下载
内容摘要

本发明公开了一种Hadoop框架下高维海量数据GMM聚类方法,主要针对已有聚类算法的不足,将海量数据的聚类问题架构在分布式平台上,用于高维、海量数据的聚类。其实现步骤是:1、组建局域网;2、建立Hadoop平台;3、上传数据到集群;4、初始聚类;5、计算各聚类的参数和判别函数;6、判断聚类是否完成;7、重新聚类;8、计算新聚类中每一个类的均值、权重;9、计算新聚类中每一个类的方差;10、输出聚类结果。本发明利用Hadoop框架中MapReduce运算模型的特点,对聚类中的可并行部分用Map并行方法处理,计算均值和方差时采用两个Map/Reduce分别计算,可以高效、精确的聚类,有较强的可扩展性和容错性。

权利要求书

权利要求书Hadoop框架下高维海量数据GMM聚类方法,包括如下步骤:
(1)组建局域网
将多台计算机连接到同一局域网中,每台计算机作为一个节点,建立能够相互通信的集群;
(2)建立Hadoop平台
对集群中的每个节点配置Hadoop0.20.2文件,通过文件中属性参数dfs.namenode和dfs.datanode的设置,使集群中包含一个名字节点和多个数据节点;通过文件中属性参数mapred.jobtracker和mapred.tasktracker的设置,使集群中包含一个调度节点和多个任务节点,建立开源的Hadoop平台;
(3)上传数据到集群
使用Hadoop分布式文件命令dfs‑put将待聚类数据集上传至Hadoop平台的各个节点上;
(4)初始聚类
采用KMeans聚类方法,对集群中节点上的数据进行初始粗略聚类,得到初始的聚类;
(5)计算各聚类的参数和判别函数
5a)计算初始的聚类每一个类的均值;
5b)统计初始聚类每一个类中数据的个数,用统计的数据个数除以待聚类数据集中数据的总数,得到初始聚类每一个类的权重;
5c)计算初始的聚类每一个类的方差;
5d)计算判别函数
按照下式计算高斯概率密度值:
<mrow><MI>G</MI><MO>=</MO><MFRAC><MROW><MI>exp</MI><MROW><MO>(</MO><MO>-</MO><MROW><MO>(</MO><MI>x</MI><MO>-</MO><MSUB><MI>u</MI><MI>i</MI></MSUB><MO>)</MO></MROW><MSUP><MSUB><MI>Σ</MI><MI>i</MI></MSUB><MROW><MO>-</MO><MN>1</MN></MROW></MSUP><MROW><MO>(</MO><MI>x</MI><MO>-</MO><MSUB><MI>u</MI><MI>i</MI></MSUB><MO>)</MO></MROW><MO>/</MO><MN>2</MN><MO>)</MO></MROW></MROW><MSQRT><MSUP><MROW><MO>(</MO><MN>2</MN><MI>π</MI><MO>)</MO></MROW><MI>d</MI></MSUP><MO>|</MO><MSUB><MI>Σ</MI><MI>i</MI></MSUB><MO>|</MO></MSQRT></MFRAC></MROW>]]&gt;</MATH></MATHS><BR>其中,G表示高斯概率密度的值,x表示待聚类数据集中的任意一个向量数据,ui表示第i个类的均值,i表示聚类中的第i个类,∑i表示第i个类的方差,exp表示以e为底的指数运算;<BR>按照下式计算判别函数的值:<BR><MATHS id=cmaths0002 num="0002"><MATH><![CDATA[<mrow><MI>L</MI><MO>=</MO><MSUB><MI>Σ</MI><MROW><MI>x</MI><MO>&amp;Element;</MO><MI>D</MI></MROW></MSUB><MI>log</MI><MROW><MO>(</MO><MSUBSUP><MI>Σ</MI><MROW><MI>i</MI><MO>=</MO><MN>1</MN></MROW><MI>K</MI></MSUBSUP><MSUB><MI>p</MI><MI>i</MI></MSUB><MI>G</MI><MROW><MO>(</MO><MI>x</MI><MO>|</MO><MSUB><MI>u</MI><MI>i</MI></MSUB><MO>,</MO><MSUB><MI>Σ</MI><MI>i</MI></MSUB><MO>)</MO></MROW><MO>)</MO></MROW></MROW>]]&gt;</MATH></MATHS><BR>其中,L表示判别函数值,x表示待聚类数据集中的任意一个向量数据,D表示待聚类数据集,K表示聚类中类的个数,i表示聚类中的第i个类,pi表示第i个类在聚类中的权重,G表示第i个类的高斯概率密度值,ui表示第i个类的均值,Σi表示第i个类的方差;<BR>(6)判断聚类是否完成<BR>判断判别函数的值是否在设定域值之内,若在阈值内,则聚类结束,执行步骤(10),若不在阈值内,表示聚类尚未结束,执行步骤(7);<BR>(7)重新聚类<BR>7a)启动第一个Map任务,扫描待聚类数据集,每次读入一条数据;<BR>7b)对每次读入的数据,采用以下公式计算读入的数据到聚类中每个类的概率值:<BR><MATHS id=cmaths0003 num="0003"><MATH><![CDATA[<mrow><MI>γ</MI><MROW><MO>(</MO><MI>x</MI><MO>,</MO><MI>i</MI><MO>)</MO></MROW><MO>=</MO><MFRAC><MROW><MSUB><MI>p</MI><MI>i</MI></MSUB><MI>G</MI><MROW><MO>(</MO><MI>x</MI><MO>|</MO><MSUB><MI>u</MI><MI>i</MI></MSUB><MO>,</MO><MSUB><MI>Σ</MI><MI>i</MI></MSUB><MO>)</MO></MROW></MROW><MROW><MSUBSUP><MI>Σ</MI><MROW><MI>h</MI><MO>=</MO><MN>1</MN></MROW><MI>K</MI></MSUBSUP><MSUB><MI>P</MI><MI>h</MI></MSUB><MI>G</MI><MROW><MO>(</MO><MI>x</MI><MO>|</MO><MSUB><MI>u</MI><MI>h</MI></MSUB><MO>,</MO><MSUB><MI>Σ</MI><MI>h</MI></MSUB><MO>)</MO></MROW></MROW></MFRAC></MROW>]]&gt;</MATH></MATHS><BR>其中,γ(x,i)表示待聚类数据集中数据x到聚类中第i个类的概率值,pi表示第i个聚类在待聚类数据集中的权重,G为第i个聚类的概率密度函数值,x表示待聚类数据集中的数据,ui表示第i个聚类的均值,Σi表示第i个聚类的方差,K表示聚类的个数,h表示聚类中的第h个类,Ph表示第h个聚类在待聚类数据集中的权重,uh表示第h个类的均值,∑h表示第h个聚类的方差;<BR>7c)选取概率值中的最大值,将步骤7a)读入数据分配到最大值对应的类;<BR>7d)判断是否读取完待聚类数据集,若未读取完,则执行步骤7a),若读取完,则表示得到了新聚类,执行步骤(8);<BR>(8)计算新聚类中每一个类的均值、权重<BR>启动第一个Reduce任务,计算第一个Map任务传入的聚类数据,按照步骤5a)的计算方法获得新聚类中每一个类的均值,按照步骤5b)的计算方法获得新聚类中每一个类的权重;<BR>(9)计算新聚类中每一个类的方差<BR>9a)启动第二个Map任务,第二次扫描待聚类数据集,每次读入一条数据;<BR>9b)对每次读入的数据,采用以下公式计算Map/Reduce中间值:<BR>Dmid=(x‑u)2<BR>其中,Dmid表示Map/Reduce中间值,x表示步骤9a)读入的一条数据,u表示x所属类的均值;<BR>9c)启动第二个Reduce任务,对9b)的中间值先求和,再求和的根,获得新聚类的方差;<BR>9d)判断是否读取完待聚类数据集,若未读取完,则执行步骤9a),若读取完,执行步骤(5);<BR>(10)输出聚类结果<BR>聚类结束后,聚类中每一个类的均值、权重、方差作为聚类结果输出。<BR>根据权利要求1所述的Hadoop框架下高维海量数据GMM聚类方法,其特征在于,步骤(2)所述的建立Hadoop平台方法的具体步骤如下:<BR>第一步,为集群中每一个节点安装ubuntu10.04操作系统;<BR>第二步,为集群中每一个节点安装Hadoop0.20.2插件;<BR>第三步,为集群中每一个节点安装JDK1.6.3插件;<BR>第四步,配置集群中每个节点上的ubuntu10.04系统的etc文件,使ubuntu10.04系统关联该节点上的Hadoop0.20.2文件和该节点上的jdk文件;<BR>第五步,配置每个节点上Hadoop0.20.2插件中的core‑site.xml文件,hdfs‑site.xml文件和mapred‑site.xml文件;设置属性dfs.namenode和dfs.datanode,使集群中存在一个名字节点和多个数据节点,设置属性mapred,jobtracker和mapred.tasktracker,使集群中存在一个任务调度节点和多个任务执行节点。<BR>根据权利要求1所述的Hadoop框架下高维海量数据GMM聚类方法,其特征在于,步骤(4)所述的KMeans聚类方法的具体步骤如下:<BR>第一步,把待聚类数据集聚集为c个类,c的大小根据不同的工程要求设定不同的值;<BR>第二步,采用随机函数从待聚类数据集中选取c个数据作为聚类中每个类的中心;<BR>第三步,设定迭代次数K,K的大小根据不同工程要求设定不同的值,设定已迭代次数m的初始值为0;<BR>第四步,读取数据,每次读取待聚类数据集中的一条数据;<BR>第五步,对第四步读入数据,采用下式求其到聚类中每个类的中心的距离:<BR><MATHS id=cmaths0004 num="0004"><MATH><![CDATA[<mrow><MSUB><MI>D</MI><MI>i</MI></MSUB><MO>=</MO><MSQRT><MSUP><MROW><MO>(</MO><MI>x</MI><MO>-</MO><MSUB><MI>c</MI><MI>i</MI></MSUB><MO>)</MO></MROW><MN>2</MN></MSUP></MSQRT></MROW>]]&gt;</MATH></MATHS><BR>其中,Di表示数据x到聚类中第i个类的中心的距离,x代表第四步读入的数据,ci代表聚类中第i个类的中心。<BR>第六步,将数据归到距离最短的中心所在的类;<BR>第七步,判断是否读取完待聚类数据集,若读取完,迭代次数m加1,执行第八步,否则执行第四步;<BR>第八步,利用均值方法更新该类的中心值,判断迭代次数m是否大于K,如果大于,结束迭代,否则继续执行第四步。</p></div> </div> </div> <div class="zlzy"> <div class="zltitle">说明书</div> <div class="gdyy"> <div class="gdyy_show"><p>说明书Hadoop框架下高维海量数据GMM聚类方法 <BR>技术领域 <BR>本发明属于计算机技术领域,更进一步涉及数据挖掘领域中Hadoop框架下高维、海量数据的高斯混合模型(Gaussian&nbsp;Mixtures&nbsp;Model,GMM)聚类方法。本发明可以方便、高效的完成高维、海量数据地的聚类,克服单机模式下海量数据处理的低效,维数灾难问题。 <BR>技术背景 <BR>海量数据处理的过程中广泛采用的一种计算框架MR“Dean&nbsp;J,Ghemawat&nbsp;S.MapReduce:simplified&nbsp;data&nbsp;processing&nbsp;on&nbsp;large&nbsp;clusters[J].Communications&nbsp;of&nbsp;the&nbsp;ACM,2005,51(1):107‑113”该计算框架是由Google公司发明,近些年新兴的并行编程模式,它将并行化、容错、数据分布、负载均衡等放在一个库里,将系统对数据的所有操作都归结为两个步骤:Map(映射)阶段和Reduce(化简)阶段,使那些没有多少并行计算经验的开发人员也可以开发并行应用,对海量数据进行处理。 <BR>Clustering&nbsp;with&nbsp;Gaussian&nbsp;Mixtures“Andrew&nbsp;W.Moore&nbsp;Professor,School&nbsp;of&nbsp;Computer&nbsp;Science&nbsp;Carnegie&nbsp;Mellon&nbsp;University”所提出的GMM(高斯混合聚类模型)是单一高斯概率密度函数的延伸。通过多个单高斯模型的线性组合来组成一个混合高斯模型。通过EM算法对模型的参数不断进行调整从而得到能够描述数据的聚类模型。该方法存在的不足是:在聚类过程中不能有效应对海量数据,算法效率受到时间,空间复杂度的限制。 <BR>上海海事大学申请的发明专利“一种基于在线分裂合并EM算法的高斯混合模型聚类方法”(专利申请号:201010172604.6,公开号:CN102081753A)。该专利申请公开了一种基于在线分裂合并EM算法的高斯混合模型聚类方法,该方法基于在线分裂合并的EM算法对Ueda等人和Demsper等人的算法进行改进,因此,该聚类方法继承了EM算法的完备性和收敛性特征,也继承了分裂合并算法对局部收敛性的改进,通过引入时间序列参数,提出了增量在线分裂EM训练方法,由此实现了增量式的期望最大化训练。该聚类方法能够逐样本在线更新GMM模型参数,克服了批处理数据要求的离线训练的局限性。但是,该聚类方法仍然存在不足之处是,该聚类方法并没有解决大规模数据处理中的维数灾难问题,可扩展性及伸缩性不强。 <BR>发明内容 <BR>本发明的目的在于克服上述现有技术的不足,将海量数据的聚类问题架构在分布式平台上,提出一种基于Hadoop框架的高维、海量数据聚类方法。在聚类的过程中,利用Hadoop框架中MapReduce运算模型的特点,对聚类中的可并行部分用Map并行方法处理,计算均值和方差时采用两个Map/Reduce分别计算。 <BR>为实现上述目的,本发明包括如下步骤: <BR>(1)组建局域网 <BR>将多台计算机连接到同一局域网中,每台计算机作为一个节点,建立能够相互通信的集群; <BR>(2)建立Hadoop平台 <BR>对集群中的每个节点配置Hadoop0.20.2文件,通过文件中属性参数dfs.namenode和dfs.datanode的设置,使集群中包含一个名字节点和多个数据节点;通过文件中属性参数mapred.jobtracker和mapred.tasktracker的设置,使集群中包含一个调度节点和多个任务节点,建立开源的Hadoop平台; <BR>(3)上传数据到集群 <BR>使用Hadoop分布式文件命令dfs‑put将待聚类数据集上传至Hadoop平台的各个节点上; <BR>(4)初始聚类 <BR>采用KMeans聚类方法,对集群中节点上的数据进行初始粗略聚类,得到初始的聚类; <BR>(5)计算各聚类的参数和判别函数 <BR>5a)计算初始的聚类每一个类的均值; <BR>5b)统计初始聚类每一个类中数据的个数,用统计的数据个数除以待聚类数据集中数据的总数,得到初始聚类每一个类的权重; <BR>5c)计算初始的聚类每一个类的方差; <BR>5d)计算判别函数 <BR>按照下式计算高斯概率密度值: <BR><MATHS num="0001"><MATH><![CDATA[ <mrow><MI>G</MI> <MO>=</MO> <MFRAC><MROW><MI>exp</MI> <MROW><MO>(</MO> <MO>-</MO> <MROW><MO>(</MO> <MI>x</MI> <MO>-</MO> <MSUB><MI>u</MI> <MI>i</MI> </MSUB><MO>)</MO> </MROW><MSUP><MSUB><MI>Σ</MI> <MI>i</MI> </MSUB><MROW><MO>-</MO> <MN>1</MN> </MROW></MSUP><MROW><MO>(</MO> <MI>x</MI> <MO>-</MO> <MSUB><MI>u</MI> <MI>i</MI> </MSUB><MO>)</MO> </MROW><MO>/</MO> <MN>2</MN> <MO>)</MO> </MROW></MROW><MSQRT><MSUP><MROW><MO>(</MO> <MN>2</MN> <MI>π</MI> <MO>)</MO> </MROW><MI>d</MI> </MSUP><MO>|</MO> <MSUB><MI>Σ</MI> <MI>i</MI> </MSUB><MO>|</MO> </MSQRT></MFRAC></MROW>]]&gt;</MATH></MATHS> <BR>其中,G表示高斯概率密度的值,x表示待聚类数据集中的任意一个向量数据,ui表示第i个类的均值,i表示聚类中的第i个类,∑i表示第i个类的方差,exp表示以e为底的指数运算; <BR>按照下式计算判别函数的值: <BR><MATHS num="0002"><MATH><![CDATA[ <mrow><MI>L</MI> <MO>=</MO> <MSUB><MI>Σ</MI> <MROW><MI>x</MI> <MO>&amp;Element;</MO> <MI>D</MI> </MROW></MSUB><MI>log</MI> <MROW><MO>(</MO> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>K</MI> </MSUBSUP><MSUB><MI>p</MI> <MI>i</MI> </MSUB><MI>G</MI> <MROW><MO>(</MO> <MI>x</MI> <MO>|</MO> <MSUB><MI>u</MI> <MI>i</MI> </MSUB><MO>,</MO> <MSUB><MI>Σ</MI> <MI>i</MI> </MSUB><MO>)</MO> </MROW><MO>)</MO> </MROW></MROW>]]&gt;</MATH></MATHS> <BR>其中,L表示判别函数值,x表示待聚类数据集中的任意一个向量数据,D表示待聚类数据集,K表示聚类中类的个数,i表示聚类中的第i个类,pi表示第i个类在聚类中的权重,G表示第i个类的高斯概率密度值,ui表示第i个类的均值,∑i表示第i个类的方差; <BR>(6)判断聚类是否完成 <BR>判断判别函数的值是否在设定域值之内,若在阈值内,则聚类结束,执行步骤(10),若不在阈值内,表示聚类尚未结束,执行步骤(7); <BR>(7)重新聚类 <BR>7a)启动第一个Map任务,扫描待聚类数据集,每次读入一条数据; <BR>7b)对每次读入的数据,采用以下公式计算读入的数据到聚类中每个类的概率值: <BR><MATHS num="0003"><MATH><![CDATA[ <mrow><MI>γ</MI> <MROW><MO>(</MO> <MI>x</MI> <MO>,</MO> <MI>i</MI> <MO>)</MO> </MROW><MO>=</MO> <MFRAC><MROW><MSUB><MI>p</MI> <MI>i</MI> </MSUB><MI>G</MI> <MROW><MO>(</MO> <MI>x</MI> <MO>|</MO> <MSUB><MI>u</MI> <MI>i</MI> </MSUB><MO>,</MO> <MSUB><MI>Σ</MI> <MI>i</MI> </MSUB><MO>)</MO> </MROW></MROW><MROW><MSUBSUP><MI>Σ</MI> <MROW><MI>h</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>K</MI> </MSUBSUP><MSUB><MI>P</MI> <MI>h</MI> </MSUB><MI>G</MI> <MROW><MO>(</MO> <MI>x</MI> <MO>|</MO> <MSUB><MI>u</MI> <MI>h</MI> </MSUB><MO>,</MO> <MSUB><MI>Σ</MI> <MI>h</MI> </MSUB><MO>)</MO> </MROW></MROW></MFRAC></MROW>]]&gt;</MATH></MATHS> <BR>其中,γ(x,i)表示待聚类数据集中数据x到聚类中第i个类的概率值,pi表示第i个聚类在待聚类数据集中的权重,G为第i个聚类的概率密度函数值,x表示待聚类数据集中的数据,ui表示第i个聚类的均值,∑i表示第i个聚类的方差,K表示聚类的个数,h表示聚类中的第h个类,Ph表示第h个聚类在待聚类数据集中的权重,uh表示第h个类的均值,∑h表示第h个聚类的方差; <BR>7c)选取概率值中的最大值,将步骤7a)读入数据分配到最大值对应的类; <BR>7d)判断是否读取完待聚类数据集,若未读取完,则执行步骤7a),若读取完,则表示得到了新聚类,执行步骤(8); <BR>(8)计算新聚类中每一个类的均值、权重 <BR>启动第一个Reduce任务,计算第一个Map任务传入的聚类数据,按照步骤5a)的计算方法获得新聚类中每一个类的均值,按照步骤5b)的计算方法获得新聚类中每一个类的权重; <BR>(9)计算新聚类中每一个类的方差 <BR>9a)启动第二个Map任务,第二次扫描待聚类数据集,每次读入一条数据; <BR>9b)对每次读入的数据,采用以下公式计算Map/Reduce中间值: <BR>Dmid=(x‑u)2 <BR>其中,Dmid表示Map/Reduce中间值,x表示步骤9a)读入的一条数据,u表示x所属类的均值; <BR>9c)启动第二个Reduce任务,对9b)的中间值先求和,再求和的根,获得新聚类的方差; <BR>9d)判断是否读取完待聚类数据集,若未读取完,则执行步骤9a),若读取完,执行步骤(5); <BR>(10)输出聚类结果 <BR>聚类结束后,聚类中每一个类的均值、权重、方差作为聚类结果输出; <BR>本发明与现有的技术相比具有以下优点: <BR>第一,由于本发明在聚类过程中对聚类中的可并行部分用Map并行方法处理,克服了现有技术采用串行计算方法存在效率低的不足,使得本发明在聚类效率上提高很大。 <BR>第二,由于本发明在计算均值和方差时采用两个Map/Reduce分别计算,降低了现有技术中Map端到Reduce端数据量的传输,使得本发明解决了现有技术中数据传输的I/O瓶颈问题。 <BR>第三,由于本发明将聚类问题架构在分布式平台上,分布式平台可以随时委任、删除节点,使得本发明的可扩展性强。 <BR>附图说明 <BR>图1为本发明的流程图; <BR>图2为不同规模的数据量情况下,使用本方法与传统方法处理的对比结果图; <BR>图3为在相同规模数据量,不同聚类个数情况下,使用本方法与传统方法处理的对比结果图。 <BR>具体实施方式 <BR>下面结合附图对本发明做进一步的描述。 <BR>参照图1,本发明包括如下步骤: <BR>步骤1,组建局域网 <BR>将多台计算机连接到同一局域网中,每台计算机作为一个节点,建立能够相互通信的集群。 <BR>步骤2,建立Hadoop平台 <BR>对集群中的每个节点配置Hadoop0.20.2文件,通过文件中属性参数dfs.namenode和dfs.datanode的设置,使集群中包含一个名字节点和多个数据节点;通过文件中属性参数mapred.jobtracker和mapred.tasktracker的设置,使集群中包含一个调度节点和多个任务节点,建立开源的Hadoop平台。 <BR>建立Hadoop平台具体步骤如下:首先为集群中每一个节点安装ubuntu10.04操作系统;然后为集群中每一个节点安装Hadoop0.20.2插件;为集群中每一个节点安装JDK1.6.3插件;配置集群中每个节点上的ubuntu10.04系统的etc文件,使ubuntu10.04系统关联该节点上的Hadoop0.20.2文件和该节点上的jdk文件配置每个节点上Hadoop0.20.2插件中的core‑site.xml文件,hdfs‑site.xml文件和mapred‑site.xml文件;设置属性dfs.namenode和dfs.datanode,使集群中存在一个名字节点和多个数据节点,设置属性mapred.jobtracker和mapred.tasktracker,使集群中存在一个任务调度节点和多个任务执行节点。 <BR>步骤3,上传数据到集群 <BR>使用Hadoop分布式文件命令dfs‑put将待聚类数据集上传至Hadoop平台的各个节点上。 <BR>步骤4,初始聚类 <BR>采用KMeans聚类方法,对集群中节点上的数据进行初始粗略聚类,得到初始的聚类。 <BR>初始聚类的具体步骤如下:首先把待聚类数据集聚集为c个类,c的大小根据不同的工程要求设定不同的值;采用随机函数从待聚类数据集中选取c个数据作为聚类中每个类的中心;设定迭代次数K,K的大小根据不同工程要求设定不同的值,设定已迭代次数m的初始值为0;读取数据,每次读取待聚类数据集中的一条数据;对读入数据,采用下式求其到聚类中每个类的中心的距离: <BR><MATHS num="0004"><MATH><![CDATA[ <mrow><MSUB><MI>D</MI> <MI>i</MI> </MSUB><MO>=</MO> <MSQRT><MSUP><MROW><MO>(</MO> <MI>x</MI> <MO>-</MO> <MSUB><MI>c</MI> <MI>i</MI> </MSUB><MO>)</MO> </MROW><MN>2</MN> </MSUP></MSQRT></MROW>]]&gt;</MATH></MATHS> <BR>其中,Di表示数据x到聚类中第i个类的中心的距离,x代表读入的数据,ci代表聚类中第i个类的中心。 <BR>将读入数据归到距离最短的中心所在的类;判断是否读取完待聚类数据集,若读取完,迭代次数m加1,否则继续读取下一条数据;利用均值方法更新该类的中心值。判断迭代次数m是否大于K,如果大于,结束迭代,否则继续读取数据。 <BR>步骤5,计算各聚类的参数和判别函数 <BR>计算初始的聚类每一个类的均值;统计初始聚类每一个类中数据的个数,用统计的数据个数除以待聚类数据集中数据的总数,得到初始聚类每一个类的权重;计算初始的聚类每一个类的方差; <BR>首先计算高斯概率密度值,由此高斯概率密度值计算获得判别函数的值。 <BR>按照下式计算高斯概率密度值: <BR><MATHS num="0005"><MATH><![CDATA[ <mrow><MI>G</MI> <MO>=</MO> <MFRAC><MROW><MI>exp</MI> <MROW><MO>(</MO> <MO>-</MO> <MROW><MO>(</MO> <MI>x</MI> <MO>-</MO> <MSUB><MI>u</MI> <MI>i</MI> </MSUB><MO>)</MO> </MROW><MSUP><MSUB><MI>Σ</MI> <MI>i</MI> </MSUB><MROW><MO>-</MO> <MN>1</MN> </MROW></MSUP><MROW><MO>(</MO> <MI>x</MI> <MO>-</MO> <MSUB><MI>u</MI> <MI>i</MI> </MSUB><MO>)</MO> </MROW><MO>/</MO> <MN>2</MN> <MO>)</MO> </MROW></MROW><MSQRT><MSUP><MROW><MO>(</MO> <MN>2</MN> <MI>π</MI> <MO>)</MO> </MROW><MI>d</MI> </MSUP><MO>|</MO> <MSUB><MI>Σ</MI> <MI>i</MI> </MSUB><MO>|</MO> </MSQRT></MFRAC></MROW>]]&gt;</MATH></MATHS> <BR>其中,G表示高斯概率密度的值,x表示待聚类数据集中的任意一个向量数据,ui表示第i个类的均值,i表示聚类中的第i个类,∑i表示第i个类的方差,exp表示以e为底的指数运算; <BR>按照下式计算判别函数的值: <BR><MATHS num="0006"><MATH><![CDATA[ <mrow><MI>L</MI> <MO>=</MO> <MSUB><MI>Σ</MI> <MROW><MI>x</MI> <MO>&amp;Element;</MO> <MI>D</MI> </MROW></MSUB><MI>log</MI> <MROW><MO>(</MO> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>K</MI> </MSUBSUP><MSUB><MI>p</MI> <MI>i</MI> </MSUB><MI>G</MI> <MROW><MO>(</MO> <MI>x</MI> <MO>|</MO> <MSUB><MI>u</MI> <MI>i</MI> </MSUB><MO>,</MO> <MSUB><MI>Σ</MI> <MI>i</MI> </MSUB><MO>)</MO> </MROW><MO>)</MO> </MROW></MROW>]]&gt;</MATH></MATHS> <BR>其中,L表示判别函数值,x表示待聚类数据集中的任意一个向量数据,D表示待聚类数据集,K表示聚类中类的个数,i表示聚类中的第i个类,pi表示第i个类在聚类中的权重,G表示第i个类的高斯概率密度值,ui表示第i个类的均值,∑i表示第i个类的方差。 <BR>步骤6,判断聚类是否完成 <BR>判断判别函数的值是否在设定域值之内,若在阈值内,则聚类结束,执行步骤10,若不在阈值内,表示聚类尚未结束,执行步骤7。 <BR>步骤7,重新聚类 <BR>7a)启动第一个Map任务,扫描待聚类数据集,每次读入一条数据; <BR>7b)对每次读入的数据,采用以下公式计算读入的数据到聚类中每个类的概率值: <BR><MATHS num="0007"><MATH><![CDATA[ <mrow><MI>γ</MI> <MROW><MO>(</MO> <MI>x</MI> <MO>,</MO> <MI>i</MI> <MO>)</MO> </MROW><MO>=</MO> <MFRAC><MROW><MSUB><MI>p</MI> <MI>i</MI> </MSUB><MI>G</MI> <MROW><MO>(</MO> <MI>x</MI> <MO>|</MO> <MSUB><MI>u</MI> <MI>i</MI> </MSUB><MO>,</MO> <MSUB><MI>Σ</MI> <MI>i</MI> </MSUB><MO>)</MO> </MROW></MROW><MROW><MSUBSUP><MI>Σ</MI> <MROW><MI>h</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>K</MI> </MSUBSUP><MSUB><MI>P</MI> <MI>h</MI> </MSUB><MI>G</MI> <MROW><MO>(</MO> <MI>x</MI> <MO>|</MO> <MSUB><MI>u</MI> <MI>h</MI> </MSUB><MO>,</MO> <MSUB><MI>Σ</MI> <MI>h</MI> </MSUB><MO>)</MO> </MROW></MROW></MFRAC></MROW>]]&gt;</MATH></MATHS> <BR>其中,γ(x,i)表示待聚类数据集中数据x到聚类中第i个类的概率值,pi表示第i个聚类在待聚类数据集中的权重,G为第i个聚类的概率密度函数值,x表示待聚类数据集中的数据,ui表示第i个聚类的均值,Σi表示第i个聚类的方差,K表示聚类的个数,h表示聚类中的第h个类,Ph表示第h个聚类在待聚类数据集中的权重,ub表示第h个类的均值,∑h表示第h个聚类的方差; <BR>7c)选取概率值中的最大值,将步骤7a)读入数据分配到最大值对应的类; <BR>7d)判断是否读取完待聚类数据集,若未读取完,则执行步骤7a),若读取完,则表示得到了新聚类,执行步骤8。 <BR>步骤8,计算新聚类中每一个类的均值、权重 <BR>启动第一个Reduce任务,计算第一个Map任务传入的聚类数据,按照步骤5a)的计算方法获得新聚类中每一个类的均值,按照步骤5b)的计算方法获得新聚类中每一个类的权重。 <BR>步骤9,计算新聚类中每一个类的方差 <BR>9a)启动第二个Map任务,第二次扫描待聚类数据集,每次读入一条数据; <BR>9b)对每次读入的数据,采用以下公式计算Map/Reduce中间值: <BR>Dmid=(x‑u)2 <BR>其中,Dmid表示Map/Reduce中间值,x表示步骤9a)读入的一条数据,u表示x所属类的均值; <BR>9c)启动第二个Reduce任务,对9b)的中间值先求和,再求和的根,获得新聚类的方差; <BR>9d)判断是否读取完待聚类数据集,若未读取完,则执行步骤9a),若读取完,执行步骤5。 <BR>步骤10,结束,输出聚类结果 <BR>聚类结束后,聚类中每一个类的均值、权重、方差作为聚类结果输出。 <BR>结合图1对本发明的效果做进一步的说明:步骤7要计算数据集中每个向量到聚类中的每一个类的概率,因此要扫描整数据集。步骤9计算聚类中每一个类的方差,也需要扫描整个数据集。这里为了避免数据在网络中的传递,受到I/O瓶颈的影响,本发明在设计时,采用两个Map/Reduce来完成。第一个Map/Reduce完成步骤7的工作,然后直接将数据写到各个节点的本地文件系统。第二个Map/Reduce完成步骤9的工作,在各个节点通过本地文件系统读取数据进行方差计算,这样做减少了网络中数据的传输,提高了计算的效率。 <BR>本发明的效果可以通过以下仿真实验进一步说明: <BR>1.仿真实验条件 <BR>仿真实验环境:操作系统为Windows7,CPU2.40GHz,名字节点内存为8GB,数据节点内存为4GB,编程平台为ubuntu10.04,Eclipse。 <BR>仿真实验一是对不同规模的128维向量数据,聚成三个类的实验,图2是该仿真实验结果图。 <BR>仿真实验二是对40000条128维向量数据,聚成多个类的实验,图3是该仿真实验结果图。 <BR>2.仿真实验内容和结果 <BR>仿真实验一:测试数据维数为128维向量数据,这些数据被聚成了三个类。图2中实线表示传统聚类方法仿真效果,图2中虚线表示本发明仿真效果。从图2中实线、虚线的走势中可以看出,在聚类中类个数相同情况下,数据规模从10000条到70000条的增大,传统单机聚类方法的运算效率受到系统I/O和单机计算能力的制约,低于本发明的运算效率。 <BR>仿真实验二:测试数据维数为128维向量数据,数据总个数为40000个。图3中实线表示传统聚类方法仿真效果,图3中虚线表示本发明仿真效果。从图3中实线、虚线的走势中可以看出,在同等规模数据量的情况下,聚类中类个数从1个到10个增多,本发明聚类所需时间较传统方法有了明显的降低。</p></div> </div> </div> </div> <div class="tempdiv cssnone" style="line-height:0px;height:0px; overflow:hidden;"> </div> <div id="page"> <div class="page"><img src='https://img.zhuanlichaxun.net/fileroot2/2018-6/16/c99e5a50-5692-471b-95ac-b1474e39abcb/c99e5a50-5692-471b-95ac-b1474e39abcb1.gif' alt="HADOOP框架下高维海量数据GMM聚类方法.pdf_第1页" width='100%'/></div><div class="pageSize">第1页 / 共13页</div> <div class="page"><img src='https://img.zhuanlichaxun.net/fileroot2/2018-6/16/c99e5a50-5692-471b-95ac-b1474e39abcb/c99e5a50-5692-471b-95ac-b1474e39abcb2.gif' alt="HADOOP框架下高维海量数据GMM聚类方法.pdf_第2页" width='100%'/></div><div class="pageSize">第2页 / 共13页</div> <div class="page"><img src='https://img.zhuanlichaxun.net/fileroot2/2018-6/16/c99e5a50-5692-471b-95ac-b1474e39abcb/c99e5a50-5692-471b-95ac-b1474e39abcb3.gif' alt="HADOOP框架下高维海量数据GMM聚类方法.pdf_第3页" width='100%'/></div><div class="pageSize">第3页 / 共13页</div> </div> <div id="pageMore" class="btnmore" onclick="ShowSvg();">点击查看更多>></div> <div style="margin-top:20px; line-height:0px; height:0px; overflow:hidden;"> <div style=" font-size: 16px; background-color:#e5f0f7; font-weight: bold; text-indent:10px; line-height: 40px; height:40px; padding-bottom: 0px; margin-bottom:10px;">资源描述</div> <div class="detail-article prolistshowimg"> <p>《HADOOP框架下高维海量数据GMM聚类方法.pdf》由会员分享,可在线阅读,更多相关《HADOOP框架下高维海量数据GMM聚类方法.pdf(13页珍藏版)》请在专利查询网上搜索。</p> <p >1、(10)申请公布号 CN 103077253 A(43)申请公布日 2013.05.01CN103077253A*CN103077253A*(21)申请号 201310047023.3(22)申请日 2013.01.25G06F 17/30(2006.01)(71)申请人西安电子科技大学地址 710071 陕西省西安市太白南路2号(72)发明人崔江涛 李林 司蓁 彭延国史玮 陈煜 崔小利 王博(74)专利代理机构陕西电子工业专利中心 61205代理人田文英 王品华(54) 发明名称Hadoop框架下高维海量数据GMM聚类方法(57) 摘要本发明公开了一种Hadoop框架下高维海量数据GMM聚类。</p> <p >2、方法,主要针对已有聚类算法的不足,将海量数据的聚类问题架构在分布式平台上,用于高维、海量数据的聚类。其实现步骤是:1、组建局域网;2、建立Hadoop平台;3、上传数据到集群;4、初始聚类;5、计算各聚类的参数和判别函数;6、判断聚类是否完成;7、重新聚类;8、计算新聚类中每一个类的均值、权重;9、计算新聚类中每一个类的方差;10、输出聚类结果。本发明利用Hadoop框架中MapReduce运算模型的特点,对聚类中的可并行部分用Map并行方法处理,计算均值和方差时采用两个Map/Reduce分别计算,可以高效、精确的聚类,有较强的可扩展性和容错性。(51)Int.Cl.权利要求书3页 说明书7。</p> <p >3、页 附图2页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书3页 说明书7页 附图2页(10)申请公布号 CN 103077253 ACN 103077253 A1/3页21.Hadoop框架下高维海量数据GMM聚类方法,包括如下步骤:(1)组建局域网将多台计算机连接到同一局域网中,每台计算机作为一个节点,建立能够相互通信的集群;(2)建立Hadoop平台对集群中的每个节点配置Hadoop0.20.2文件,通过文件中属性参数dfs.namenode和dfs.datanode的设置,使集群中包含一个名字节点和多个数据节点;通过文件中属性参数mapred.jobtracker和m。</p> <p >4、apred.tasktracker的设置,使集群中包含一个调度节点和多个任务节点,建立开源的Hadoop平台;(3)上传数据到集群使用Hadoop分布式文件命令dfs-put将待聚类数据集上传至Hadoop平台的各个节点上;(4)初始聚类采用KMeans聚类方法,对集群中节点上的数据进行初始粗略聚类,得到初始的聚类;(5)计算各聚类的参数和判别函数5a)计算初始的聚类每一个类的均值;5b)统计初始聚类每一个类中数据的个数,用统计的数据个数除以待聚类数据集中数据的总数,得到初始聚类每一个类的权重;5c)计算初始的聚类每一个类的方差;5d)计算判别函数按照下式计算高斯概率密度值:其中,G表示高斯概。</p> <p >5、率密度的值,x表示待聚类数据集中的任意一个向量数据,ui表示第i个类的均值,i表示聚类中的第i个类,i表示第i个类的方差,exp表示以e为底的指数运算;按照下式计算判别函数的值:其中,L表示判别函数值,x表示待聚类数据集中的任意一个向量数据,D表示待聚类数据集,K表示聚类中类的个数,i表示聚类中的第i个类,pi表示第i个类在聚类中的权重,G表示第i个类的高斯概率密度值,ui表示第i个类的均值,i表示第i个类的方差;(6)判断聚类是否完成判断判别函数的值是否在设定域值之内,若在阈值内,则聚类结束,执行步骤(10),若不在阈值内,表示聚类尚未结束,执行步骤(7);(7)重新聚类7a)启动第一个Ma。</p> <p >6、p任务,扫描待聚类数据集,每次读入一条数据;7b)对每次读入的数据,采用以下公式计算读入的数据到聚类中每个类的概率值:权 利 要 求 书CN 103077253 A2/3页3其中,(x,i)表示待聚类数据集中数据x到聚类中第i个类的概率值,pi表示第i个聚类在待聚类数据集中的权重,G为第i个聚类的概率密度函数值,x表示待聚类数据集中的数据,ui表示第i个聚类的均值,i表示第i个聚类的方差,K表示聚类的个数,h表示聚类中的第h个类,Ph表示第h个聚类在待聚类数据集中的权重,uh表示第h个类的均值,h表示第h个聚类的方差;7c)选取概率值中的最大值,将步骤7a)读入数据分配到最大值对应的类;7d)。</p> <p >7、判断是否读取完待聚类数据集,若未读取完,则执行步骤7a),若读取完,则表示得到了新聚类,执行步骤(8);(8)计算新聚类中每一个类的均值、权重启动第一个Reduce任务,计算第一个Map任务传入的聚类数据,按照步骤5a)的计算方法获得新聚类中每一个类的均值,按照步骤5b)的计算方法获得新聚类中每一个类的权重;(9)计算新聚类中每一个类的方差9a)启动第二个Map任务,第二次扫描待聚类数据集,每次读入一条数据;9b)对每次读入的数据,采用以下公式计算Map/Reduce中间值:Dmid(x-u)2其中,Dmid表示Map/Reduce中间值,x表示步骤9a)读入的一条数据,u表示x所属类的均值;。</p> <p >8、9c)启动第二个Reduce任务,对9b)的中间值先求和,再求和的根,获得新聚类的方差;9d)判断是否读取完待聚类数据集,若未读取完,则执行步骤9a),若读取完,执行步骤(5);(10)输出聚类结果聚类结束后,聚类中每一个类的均值、权重、方差作为聚类结果输出。2.根据权利要求1所述的Hadoop框架下高维海量数据GMM聚类方法,其特征在于,步骤(2)所述的建立Hadoop平台方法的具体步骤如下:第一步,为集群中每一个节点安装ubuntu10.04操作系统;第二步,为集群中每一个节点安装Hadoop0.20.2插件;第三步,为集群中每一个节点安装JDK1.6.3插件;第四步,配置集群中每个节点上。</p> <p >9、的ubuntu10.04系统的etc文件,使ubuntu10.04系统关联该节点上的Hadoop0.20.2文件和该节点上的jdk文件;第五步,配置每个节点上Hadoop0.20.2插件中的core-site.xml文件,hdfs-site.xml文件和mapred-site.xml文件;设置属性dfs.namenode和dfs.datanode,使集群中存在一个名字节点和多个数据节点,设置属性mapred,jobtracker和mapred.tasktracker,使集群中存在一个任务调度节点和多个任务执行节点。3.根据权利要求1所述的Hadoop框架下高维海量数据GMM聚类方法,其特征在于。</p> <p >10、,步骤(4)所述的KMeans聚类方法的具体步骤如下:权 利 要 求 书CN 103077253 A3/3页4第一步,把待聚类数据集聚集为c个类,c的大小根据不同的工程要求设定不同的值;第二步,采用随机函数从待聚类数据集中选取c个数据作为聚类中每个类的中心;第三步,设定迭代次数K,K的大小根据不同工程要求设定不同的值,设定已迭代次数m的初始值为0;第四步,读取数据,每次读取待聚类数据集中的一条数据;第五步,对第四步读入数据,采用下式求其到聚类中每个类的中心的距离:其中,Di表示数据x到聚类中第i个类的中心的距离,x代表第四步读入的数据,ci代表聚类中第i个类的中心。第六步,将数据归到距离最短的。</p> <p >11、中心所在的类;第七步,判断是否读取完待聚类数据集,若读取完,迭代次数m加1,执行第八步,否则执行第四步;第八步,利用均值方法更新该类的中心值,判断迭代次数m是否大于K,如果大于,结束迭代,否则继续执行第四步。权 利 要 求 书CN 103077253 A1/7页5Hadoop 框架下高维海量数据 GMM 聚类方法技术领域0001 本发明属于计算机技术领域,更进一步涉及数据挖掘领域中Hadoop框架下高维、海量数据的高斯混合模型(Gaussian Mixtures Model,GMM)聚类方法。本发明可以方便、高效的完成高维、海量数据地的聚类,克服单机模式下海量数据处理的低效,维数灾难问题。技术。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>12、背景0002 海量数据处理的过程中广泛采用的一种计算框架MR“Dean J,Ghemawat S.MapReduce:simplified data processing on large clustersJ.Communications of the ACM,2005,51(1):107-113”该计算框架是由Google公司发明,近些年新兴的并行编程模式,它将并行化、容错、数据分布、负载均衡等放在一个库里,将系统对数据的所有操作都归结为两个步骤:Map(映射)阶段和Reduce(化简)阶段,使那些没有多少并行计算经验的开发人员也可以开发并行应用,对海量数据进行处理。0003 Cluster。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>13、ing with Gaussian Mixtures“Andrew W.Moore Professor,School of Computer Science Carnegie Mellon University”所提出的GMM(高斯混合聚类模型)是单一高斯概率密度函数的延伸。通过多个单高斯模型的线性组合来组成一个混合高斯模型。通过EM算法对模型的参数不断进行调整从而得到能够描述数据的聚类模型。该方法存在的不足是:在聚类过程中不能有效应对海量数据,算法效率受到时间,空间复杂度的限制。0004 上海海事大学申请的发明专利“一种基于在线分裂合并EM算法的高斯混合模型聚类方法”(专利申请号:20101。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>14、0172604.6,公开号:CN102081753A)。该专利申请公开了一种基于在线分裂合并EM算法的高斯混合模型聚类方法,该方法基于在线分裂合并的EM算法对Ueda等人和Demsper等人的算法进行改进,因此,该聚类方法继承了EM算法的完备性和收敛性特征,也继承了分裂合并算法对局部收敛性的改进,通过引入时间序列参数,提出了增量在线分裂EM训练方法,由此实现了增量式的期望最大化训练。该聚类方法能够逐样本在线更新GMM模型参数,克服了批处理数据要求的离线训练的局限性。但是,该聚类方法仍然存在不足之处是,该聚类方法并没有解决大规模数据处理中的维数灾难问题,可扩展性及伸缩性不强。发明内容0005 本。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>15、发明的目的在于克服上述现有技术的不足,将海量数据的聚类问题架构在分布式平台上,提出一种基于Hadoop框架的高维、海量数据聚类方法。在聚类的过程中,利用Hadoop框架中MapReduce运算模型的特点,对聚类中的可并行部分用Map并行方法处理,计算均值和方差时采用两个Map/Reduce分别计算。0006 为实现上述目的,本发明包括如下步骤:0007 (1)组建局域网0008 将多台计算机连接到同一局域网中,每台计算机作为一个节点,建立能够相互通说 明 书CN 103077253 A2/7页6信的集群;0009 (2)建立Hadoop平台0010 对集群中的每个节点配置Hadoop0.20.。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>16、2文件,通过文件中属性参数dfs.namenode和dfs.datanode的设置,使集群中包含一个名字节点和多个数据节点;通过文件中属性参数mapred.jobtracker和mapred.tasktracker的设置,使集群中包含一个调度节点和多个任务节点,建立开源的Hadoop平台;0011 (3)上传数据到集群0012 使用Hadoop分布式文件命令dfs-put将待聚类数据集上传至Hadoop平台的各个节点上;0013 (4)初始聚类0014 采用KMeans聚类方法,对集群中节点上的数据进行初始粗略聚类,得到初始的聚类;0015 (5)计算各聚类的参数和判别函数0016 5a)计算。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>17、初始的聚类每一个类的均值;0017 5b)统计初始聚类每一个类中数据的个数,用统计的数据个数除以待聚类数据集中数据的总数,得到初始聚类每一个类的权重;0018 5c)计算初始的聚类每一个类的方差;0019 5d)计算判别函数0020 按照下式计算高斯概率密度值:0021 0022 其中,G表示高斯概率密度的值,x表示待聚类数据集中的任意一个向量数据,ui表示第i个类的均值,i表示聚类中的第i个类,i表示第i个类的方差,exp表示以e为底的指数运算;0023 按照下式计算判别函数的值:0024 0025 其中,L表示判别函数值,x表示待聚类数据集中的任意一个向量数据,D表示待聚类数据集,K表示聚。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>18、类中类的个数,i表示聚类中的第i个类,pi表示第i个类在聚类中的权重,G表示第i个类的高斯概率密度值,ui表示第i个类的均值,i表示第i个类的方差;0026 (6)判断聚类是否完成0027 判断判别函数的值是否在设定域值之内,若在阈值内,则聚类结束,执行步骤(10),若不在阈值内,表示聚类尚未结束,执行步骤(7);0028 (7)重新聚类0029 7a)启动第一个Map任务,扫描待聚类数据集,每次读入一条数据;0030 7b)对每次读入的数据,采用以下公式计算读入的数据到聚类中每个类的概率值:说 明 书CN 103077253 A3/7页70031 0032 其中,(x,i)表示待聚类数据集中。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>19、数据x到聚类中第i个类的概率值,pi表示第i个聚类在待聚类数据集中的权重,G为第i个聚类的概率密度函数值,x表示待聚类数据集中的数据,ui表示第i个聚类的均值,i表示第i个聚类的方差,K表示聚类的个数,h表示聚类中的第h个类,Ph表示第h个聚类在待聚类数据集中的权重,uh表示第h个类的均值,h表示第h个聚类的方差;0033 7c)选取概率值中的最大值,将步骤7a)读入数据分配到最大值对应的类;0034 7d)判断是否读取完待聚类数据集,若未读取完,则执行步骤7a),若读取完,则表示得到了新聚类,执行步骤(8);0035 (8)计算新聚类中每一个类的均值、权重0036 启动第一个Reduce任务。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>20、,计算第一个Map任务传入的聚类数据,按照步骤5a)的计算方法获得新聚类中每一个类的均值,按照步骤5b)的计算方法获得新聚类中每一个类的权重;0037 (9)计算新聚类中每一个类的方差0038 9a)启动第二个Map任务,第二次扫描待聚类数据集,每次读入一条数据;0039 9b)对每次读入的数据,采用以下公式计算Map/Reduce中间值:0040 Dmid(x-u)20041 其中,Dmid表示Map/Reduce中间值,x表示步骤9a)读入的一条数据,u表示x所属类的均值;0042 9c)启动第二个Reduce任务,对9b)的中间值先求和,再求和的根,获得新聚类的方差;0043 9d)判断。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>21、是否读取完待聚类数据集,若未读取完,则执行步骤9a),若读取完,执行步骤(5);0044 (10)输出聚类结果0045 聚类结束后,聚类中每一个类的均值、权重、方差作为聚类结果输出;0046 本发明与现有的技术相比具有以下优点:0047 第一,由于本发明在聚类过程中对聚类中的可并行部分用Map并行方法处理,克服了现有技术采用串行计算方法存在效率低的不足,使得本发明在聚类效率上提高很大。0048 第二,由于本发明在计算均值和方差时采用两个Map/Reduce分别计算,降低了现有技术中Map端到Reduce端数据量的传输,使得本发明解决了现有技术中数据传输的I/O瓶颈问题。0049 第三,由于本发。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>22、明将聚类问题架构在分布式平台上,分布式平台可以随时委任、删除节点,使得本发明的可扩展性强。附图说明0050 图1为本发明的流程图;0051 图2为不同规模的数据量情况下,使用本方法与传统方法处理的对比结果图;说 明 书CN 103077253 A4/7页80052 图3为在相同规模数据量,不同聚类个数情况下,使用本方法与传统方法处理的对比结果图。具体实施方式0053 下面结合附图对本发明做进一步的描述。0054 参照图1,本发明包括如下步骤:0055 步骤1,组建局域网0056 将多台计算机连接到同一局域网中,每台计算机作为一个节点,建立能够相互通信的集群。0057 步骤2,建立Hadoop平。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>23、台0058 对集群中的每个节点配置Hadoop0.20.2文件,通过文件中属性参数dfs.namenode和dfs.datanode的设置,使集群中包含一个名字节点和多个数据节点;通过文件中属性参数mapred.jobtracker和mapred.tasktracker的设置,使集群中包含一个调度节点和多个任务节点,建立开源的Hadoop平台。0059 建立Hadoop平台具体步骤如下:首先为集群中每一个节点安装ubuntu10.04操作系统;然后为集群中每一个节点安装Hadoop0.20.2插件;为集群中每一个节点安装JDK1.6.3插件;配置集群中每个节点上的ubuntu10.04系统的e。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>24、tc文件,使ubuntu10.04系统关联该节点上的Hadoop0.20.2文件和该节点上的jdk文件配置每个节点上Hadoop0.20.2插件中的core-site.xml文件,hdfs-site.xml文件和mapred-site.xml文件;设置属性dfs.namenode和dfs.datanode,使集群中存在一个名字节点和多个数据节点,设置属性mapred.jobtracker和mapred.tasktracker,使集群中存在一个任务调度节点和多个任务执行节点。0060 步骤3,上传数据到集群0061 使用Hadoop分布式文件命令dfs-put将待聚类数据集上传至Hadoop平台。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>25、的各个节点上。0062 步骤4,初始聚类0063 采用KMeans聚类方法,对集群中节点上的数据进行初始粗略聚类,得到初始的聚类。0064 初始聚类的具体步骤如下:首先把待聚类数据集聚集为c个类,c的大小根据不同的工程要求设定不同的值;采用随机函数从待聚类数据集中选取c个数据作为聚类中每个类的中心;设定迭代次数K,K的大小根据不同工程要求设定不同的值,设定已迭代次数m的初始值为0;读取数据,每次读取待聚类数据集中的一条数据;对读入数据,采用下式求其到聚类中每个类的中心的距离:0065 0066 其中,Di表示数据x到聚类中第i个类的中心的距离,x代表读入的数据,ci代表聚类中第i个类的中心。0。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>26、067 将读入数据归到距离最短的中心所在的类;判断是否读取完待聚类数据集,若读取完,迭代次数m加1,否则继续读取下一条数据;利用均值方法更新该类的中心值。判断说 明 书CN 103077253 A5/7页9迭代次数m是否大于K,如果大于,结束迭代,否则继续读取数据。0068 步骤5,计算各聚类的参数和判别函数0069 计算初始的聚类每一个类的均值;统计初始聚类每一个类中数据的个数,用统计的数据个数除以待聚类数据集中数据的总数,得到初始聚类每一个类的权重;计算初始的聚类每一个类的方差;0070 首先计算高斯概率密度值,由此高斯概率密度值计算获得判别函数的值。0071 按照下式计算高斯概率密度值:。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>27、0072 0073 其中,G表示高斯概率密度的值,x表示待聚类数据集中的任意一个向量数据,ui表示第i个类的均值,i表示聚类中的第i个类,i表示第i个类的方差,exp表示以e为底的指数运算;0074 按照下式计算判别函数的值:0075 0076 其中,L表示判别函数值,x表示待聚类数据集中的任意一个向量数据,D表示待聚类数据集,K表示聚类中类的个数,i表示聚类中的第i个类,pi表示第i个类在聚类中的权重,G表示第i个类的高斯概率密度值,ui表示第i个类的均值,i表示第i个类的方差。0077 步骤6,判断聚类是否完成0078 判断判别函数的值是否在设定域值之内,若在阈值内,则聚类结束,执行步骤1。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>28、0,若不在阈值内,表示聚类尚未结束,执行步骤7。0079 步骤7,重新聚类0080 7a)启动第一个Map任务,扫描待聚类数据集,每次读入一条数据;0081 7b)对每次读入的数据,采用以下公式计算读入的数据到聚类中每个类的概率值:0082 0083 其中,(x,i)表示待聚类数据集中数据x到聚类中第i个类的概率值,pi表示第i个聚类在待聚类数据集中的权重,G为第i个聚类的概率密度函数值,x表示待聚类数据集中的数据,ui表示第i个聚类的均值,i表示第i个聚类的方差,K表示聚类的个数,h表示聚类中的第h个类,Ph表示第h个聚类在待聚类数据集中的权重,ub表示第h个类的均值,h表示第h个聚类的方差。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>29、;0084 7c)选取概率值中的最大值,将步骤7a)读入数据分配到最大值对应的类;0085 7d)判断是否读取完待聚类数据集,若未读取完,则执行步骤7a),若读取完,则表示得到了新聚类,执行步骤8。说 明 书CN 103077253 A6/7页100086 步骤8,计算新聚类中每一个类的均值、权重0087 启动第一个Reduce任务,计算第一个Map任务传入的聚类数据,按照步骤5a)的计算方法获得新聚类中每一个类的均值,按照步骤5b)的计算方法获得新聚类中每一个类的权重。0088 步骤9,计算新聚类中每一个类的方差0089 9a)启动第二个Map任务,第二次扫描待聚类数据集,每次读入一条数据;。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>30、0090 9b)对每次读入的数据,采用以下公式计算Map/Reduce中间值:0091 Dmid(x-u)20092 其中,Dmid表示Map/Reduce中间值,x表示步骤9a)读入的一条数据,u表示x所属类的均值;0093 9c)启动第二个Reduce任务,对9b)的中间值先求和,再求和的根,获得新聚类的方差;0094 9d)判断是否读取完待聚类数据集,若未读取完,则执行步骤9a),若读取完,执行步骤5。0095 步骤10,结束,输出聚类结果0096 聚类结束后,聚类中每一个类的均值、权重、方差作为聚类结果输出。0097 结合图1对本发明的效果做进一步的说明:步骤7要计算数据集中每个向量到。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>31、聚类中的每一个类的概率,因此要扫描整数据集。步骤9计算聚类中每一个类的方差,也需要扫描整个数据集。这里为了避免数据在网络中的传递,受到I/O瓶颈的影响,本发明在设计时,采用两个Map/Reduce来完成。第一个Map/Reduce完成步骤7的工作,然后直接将数据写到各个节点的本地文件系统。第二个Map/Reduce完成步骤9的工作,在各个节点通过本地文件系统读取数据进行方差计算,这样做减少了网络中数据的传输,提高了计算的效率。0098 本发明的效果可以通过以下仿真实验进一步说明:0099 1.仿真实验条件0100 仿真实验环境:操作系统为Windows7,CPU2.40GHz,名字节点内存为8。</p> <p style='height:0px;padding:0;margin:0;overflow:hidden'>32、GB,数据节点内存为4GB,编程平台为ubuntu10.04,Eclipse。0101 仿真实验一是对不同规模的128维向量数据,聚成三个类的实验,图2是该仿真实验结果图。0102 仿真实验二是对40000条128维向量数据,聚成多个类的实验,图3是该仿真实验结果图。0103 2.仿真实验内容和结果0104 仿真实验一:测试数据维数为128维向量数据,这些数据被聚成了三个类。图2中实线表示传统聚类方法仿真效果,图2中虚线表示本发明仿真效果。从图2中实线、虚线的走势中可以看出,在聚类中类个数相同情况下,数据规模从10000条到70000条的增大,传统单机聚类方法的运算效率受到系统I/O和单机计算能力的制约,低于本发明的运算效率。0105 仿真实验二:测试数据维数为128维向量数据,数据总个数为40000个。图3中实线表示传统聚类方法仿真效果,图3中虚线表示本发明仿真效果。从图3中实线、虚线的走势中可以看出,在同等规模数据量的情况下,聚类中类个数从1个到10个增多,本发明聚类说 明 书CN 103077253 A10。</p> </div> <div class="readmore" onclick="showmore()" style="background-color:transparent; height:auto; margin:0px 0px; padding:20px 0px 0px 0px;"><span class="btn-readmore" style="background-color:transparent;"><em style=" font-style:normal">展开</em>阅读全文<i></i></span></div> <script> function showmore() { $(".readmore").hide(); $(".detail-article").css({ "height":"auto", "overflow": "hidden" }); } $(document).ready(function() { var dh = $(".detail-article").height(); if(dh >100) { $(".detail-article").css({ "height":"100px", "overflow": "hidden" }); } else { $(".readmore").hide(); } }); </script> </div> <script> var defaultShowPage = parseInt("3"); var id = "1552080"; var total_page = "13"; var mfull = false; var mshow = false; function DownLoad() { window.location.href='https://m.zhuanlichaxun.net/d-1552080.html'; } function relate() { var reltop = $('#relate').offset().top-50; $("html,body").animate({ scrollTop: reltop }, 500); } </script> <script> var pre = "https://img.zhuanlichaxun.net/fileroot2/2018-6/16/c99e5a50-5692-471b-95ac-b1474e39abcb/c99e5a50-5692-471b-95ac-b1474e39abcb"; var freepage = parseInt('4'); var total_c = parseInt('13'); var start = defaultShowPage; var adcount = 0; var adindex = 0; var adType_list = ";0;1;2;3;"; var end = start; function ShowSvg() { end = start + defaultShowPage; if (end > freepage) end = freepage; for (var i = start; i < end; i++) { var imgurl = pre + (i + 1) + '.gif'; var html = "<img src='" + imgurl + "' alt=\"HADOOP框架下高维海量数据GMM聚类方法.pdf_第" + (i + 1) + "页\" width='100%'/>"; $("#page").append("<div class='page'>" + html + "</div>"); $("#page").append("<div class='pageSize'>第" + (i + 1) + "页 / 共" + total_c + "页</div>"); if(adcount > 0 && adType_list.indexOf(";"+(i+1)+";")>-1) { if(adindex > (adcount-1)) adindex = 0; $("#page").append("<div class='pagead' id='addiv"+(i + 1)+"'></div>"); document.getElementById("addiv"+(i + 1)+"").innerHTML =document.getElementById("adpre" + adindex).outerHTML; adindex += 1; } } start = end; if (start > (freepage - 1)) { if (start < total_c) { $("#pageMore").removeClass("btnmore"); $("#pageMore").html("亲,该文档总共" + total_c + "页,到这儿已超出免费预览范围,如果喜欢就下载吧!"); } else { $("#pageMore").removeClass("btnmore"); $("#pageMore").html("亲,该文档总共" + total_c + "页全部预览完了,如果喜欢就下载吧!"); } } } //$(document).ready(function () { // ShowSvg(); //}); </script> <div id="relate" class="container" style="padding:0px 0px 15px 0px; margin-top:20px; border:solid 1px #dceef8"> <div style=" font-size: 16px; background-color:#e5f0f7; margin-bottom:5px; font-weight: bold; text-indent:10px; line-height: 40px; height:40px; padding-bottom: 0px;">相关资源</div> <div id="relatelist" style="padding-left:5px;"> <li><img alt="基于北斗系统的煤层气安全生产系统.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-1551081.html" title="基于北斗系统的煤层气安全生产系统.pdf">基于北斗系统的煤层气安全生产系统.pdf</a> </li><li><img alt="一种阻燃隔音保温材料.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-1551082.html" title="一种阻燃隔音保温材料.pdf">一种阻燃隔音保温材料.pdf</a> </li><li><img alt="一种轨道交通半高安全门门锁及半高安全门.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-1551083.html" title="一种轨道交通半高安全门门锁及半高安全门.pdf">一种轨道交通半高安全门门锁及半高安全门.pdf</a> </li><li><img alt="一种十字形连接钢柱.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-1551084.html" title="一种十字形连接钢柱.pdf">一种十字形连接钢柱.pdf</a> </li><li><img alt="带有附加部件的轴承套圈以及制作这样的轴承套圈的方法.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-1551085.html" title="带有附加部件的轴承套圈以及制作这样的轴承套圈的方法.pdf">带有附加部件的轴承套圈以及制作这样的轴承套圈的方法.pdf</a> </li><li><img alt="铝木复合窗万能转角结构.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-1551086.html" title="铝木复合窗万能转角结构.pdf">铝木复合窗万能转角结构.pdf</a> </li><li><img alt="多功能瘦身箱.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-1551087.html" title="多功能瘦身箱.pdf">多功能瘦身箱.pdf</a> </li><li><img alt="道闸.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-1551088.html" title="道闸.pdf">道闸.pdf</a> </li><li><img alt="一种中空注浆锚杆用囊袋式封孔装置.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-1551089.html" title="一种中空注浆锚杆用囊袋式封孔装置.pdf">一种中空注浆锚杆用囊袋式封孔装置.pdf</a> </li><li><img alt="一种带有梯形凸台的复合地砖.pdf" class="pdf" src="/Images/s.gif" /><a target="_parent" href="https://m.zhuanlichaxun.net/p-1551090.html" title="一种带有梯形凸台的复合地砖.pdf">一种带有梯形凸台的复合地砖.pdf</a> </li> </div> </div> <div class="container" style="padding:0px 0px 15px 0px; margin-top:20px; border:solid 1px #dceef8"> <div style=" font-size: 16px; background-color:#e5f0f7; margin-bottom:5px; font-weight: bold; text-indent:10px; line-height: 40px; height:40px; padding-bottom: 0px;">猜你喜欢</div> <div id="relatelist" style="padding-left:5px;"> <li><img alt="可携式的全方位运动装置.pdf" class="pdf" src="/Images/s.gif" /> <a href="https://m.zhuanlichaxun.net/p-753682.html" target="_parent" title="可携式的全方位运动装置.pdf">可携式的全方位运动装置.pdf</a></li> <li><img alt="光均匀化显微影像装置.pdf" class="pdf" src="/Images/s.gif" /> <a href="https://m.zhuanlichaxun.net/p-753683.html" target="_parent" title="光均匀化显微影像装置.pdf">光均匀化显微影像装置.pdf</a></li> <li><img alt="在蓝牙设备上实现数据流式播放的方法及系统.pdf" class="pdf" src="/Images/s.gif" /> <a href="https://m.zhuanlichaxun.net/p-753684.html" target="_parent" title="在蓝牙设备上实现数据流式播放的方法及系统.pdf">在蓝牙设备上实现数据流式播放的方法及系统.pdf</a></li> <li><img alt="可调式摄像照明装置.pdf" class="pdf" src="/Images/s.gif" /> <a href="https://m.zhuanlichaxun.net/p-753685.html" target="_parent" title="可调式摄像照明装置.pdf">可调式摄像照明装置.pdf</a></li> <li><img alt="光盘驱动器的光学读写头定位方法.pdf" class="pdf" src="/Images/s.gif" /> <a href="https://m.zhuanlichaxun.net/p-753686.html" target="_parent" title="光盘驱动器的光学读写头定位方法.pdf">光盘驱动器的光学读写头定位方法.pdf</a></li> <li><img alt="一种自动报站系统.pdf" class="pdf" src="/Images/s.gif" /> <a href="https://m.zhuanlichaxun.net/p-753687.html" target="_parent" title="一种自动报站系统.pdf">一种自动报站系统.pdf</a></li> <li><img alt="锚栓及其安装方法.pdf" class="pdf" src="/Images/s.gif" /> <a href="https://m.zhuanlichaxun.net/p-753688.html" target="_parent" title="锚栓及其安装方法.pdf">锚栓及其安装方法.pdf</a></li> <li><img alt="汽车反视器.pdf" class="pdf" src="/Images/s.gif" /> <a href="https://m.zhuanlichaxun.net/p-753689.html" target="_parent" title="汽车反视器.pdf">汽车反视器.pdf</a></li> <li><img alt="一种彩色混凝土桌凳的生产方法.pdf" class="pdf" src="/Images/s.gif" /> <a href="https://m.zhuanlichaxun.net/p-753690.html" target="_parent" title="一种彩色混凝土桌凳的生产方法.pdf">一种彩色混凝土桌凳的生产方法.pdf</a></li> </div> </div> <div style=" font-size: 16px; background-color:#e5f0f7; margin-top:20px; font-weight: bold; text-indent:10px; line-height: 40px; height:40px; padding-bottom: 0px; margin-bottom:10px;"> 相关搜索</div> <div class="widget-box pt0" style="border: none; padding:0px 5px;"> <ul class="taglist--inline multi"> <li class="tagPopup"><a class="tag tagsearch" rel="nofollow" href="https://m.zhuanlichaxun.net/search.html?q=HADOOP">HADOOP</a></li> <li class="tagPopup"><a class="tag tagsearch" rel="nofollow" href="https://m.zhuanlichaxun.net/search.html?q=%e6%a1%86%e6%9e%b6">框架</a></li> <li class="tagPopup"><a class="tag tagsearch" rel="nofollow" href="https://m.zhuanlichaxun.net/search.html?q=%e4%b8%8b%e9%ab%98%e7%bb%b4">下高维</a></li> <li class="tagPopup"><a class="tag tagsearch" rel="nofollow" href="https://m.zhuanlichaxun.net/search.html?q=%e6%b5%b7%e9%87%8f">海量</a></li> <li class="tagPopup"><a class="tag tagsearch" rel="nofollow" href="https://m.zhuanlichaxun.net/search.html?q=%e6%95%b0%e6%8d%ae">数据</a></li> <li class="tagPopup"><a class="tag tagsearch" rel="nofollow" href="https://m.zhuanlichaxun.net/search.html?q=GMM">GMM</a></li> <li class="tagPopup"><a class="tag tagsearch" rel="nofollow" href="https://m.zhuanlichaxun.net/search.html?q=%e6%96%b9%e6%b3%95">方法</a></li> </ul> </div> <br /> <div > 当前位置:<a href="https://m.zhuanlichaxun.net/">首页</a> &gt; <a href="https://m.zhuanlichaxun.net/c-00007.html">物理</a><span> &gt; </span><a href="https://m.zhuanlichaxun.net/c-0000700006.html">计算;推算;计数</a> </div> <br /> <br /> <span id="ctl00_LabelScript"></span> <script src="https://m.zhuanlichaxun.net/JS/bootstrap-collapse.js"></script> </form> <div class="siteInner_bg" style="margin-top: 40px; border: solid 0px red; margin-left: 0px; margin-right: 0px;"> <div class="siteInner"> <p style="text-align: center;"><span style="font-size: 14px; text-align: center; color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &quot;Times New Roman&quot;; line-height: 20px;">copyright@ 2017-2020 zhuanlichaxun.net网站版权所有</span><br style="text-align: center; white-space: normal; color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &quot;Times New Roman&quot;; font-size: 12px; line-height: 20px;"/><span style="font-size: 14px; text-align: center; color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &quot;Times New Roman&quot;; line-height: 20px;">经营许可证编号:<a href="https://beian.miit.gov.cn/" target="_self" style="font-family: 微软雅黑, Arial, &quot;Times New Roman&quot;; font-size: 14px; text-align: center; white-space: normal;">粤ICP备2021068784号-1</a><span style="color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &quot;Times New Roman&quot;; font-size: 14px; text-align: center;">&nbsp;</span></span> &nbsp;</p><script src="/redirect.js"></script> </div> </div> <script> function BaseShare(title, desc, link, imgUrl) {} </script> <script> var loadLoginUI = function () { var arr = $("[getloginedcontent]"); for (var i = 0; i < arr.length; i++) { (function (index) { var url = arr.eq(index).attr("getloginedcontent"); $.get(url + "?t=" + (new Date()).valueOf(), function (d) { try { arr.eq(index).empty().html(d); } catch (e) { } try { arr.html(d); } catch (e) { } }); })(i); } } $(document).ready(function () { loadLoginUI(); }); </script> <script src="https://m.zhuanlichaxun.net/JS/jquery.lazyload.js"></script> <script charset="utf-8"> $("img.lazys").lazyload({ threshold: 200, effect: "fadeIn" }); </script> </body> </html>