[发明专利]一种基于Spark分布式内存计算的空间K均值聚类方法在审
申请号: | 201910862008.1 | 申请日: | 2019-09-12 |
公开(公告)号: | CN110705606A | 公开(公告)日: | 2020-01-17 |
发明(设计)人: | 郭宇达;朱欣焰;呙维;佘冰 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06K9/62 | 分类号: | G06K9/62;G06F16/906 |
代理公司: | 42222 武汉科皓知识产权代理事务所(特殊普通合伙) | 代理人: | 罗飞 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 聚类中心 集合 分布式计算 计算节点 最小距离 预设 分区 归一化处理 集合广播 集群节点 计算效率 聚类类别 内存计算 初始化 集群 聚类 轮盘 更新 | ||
本发明公开了一种基于Spark分布式内存计算的空间K均值聚类方法,包括:根据集群中计算节点的数量,对所有输入数据进行分区,将所有数据均匀分布至各个计算节点上;对分区后的数据进行归一化处理;初始化聚类中心集合,并将集合广播至所有集群节点,分布式计算数据与聚类中心距离并通过轮盘法选择下一聚类中心,直到聚类中心集合大小超过预设值;对聚类中心集合进行一次本地聚类,将聚类中心集合大小固定至预设值;分布式计算所有数据与聚类中心间的最小距离,将该条数据划分为与最小距离对应的聚类类别,并针对所有类别进行Reduce计算,更新聚类中心;最后依据聚类中心对所有数据进行类别划分。本发明的方法可以提高计算效率和稳定性。
技术领域
本发明涉及空间大数据技术领域,具体涉及一种基于Spark分布式内存计算的空间K均值聚类方法。
背景技术
在实际生产生活中,经常需要对数据集进行分类,而K均值算法是实际中最常用的聚类方法。本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:
随着互联网技术的快速发展,原始数据集的大小呈几何式增长,现有技术中的单机聚类方法受到单机内存容量和计算能力的限制,在大数据量条件下的运算性能与稳定性难以满足要求。
由此可知,现有技术中的方法存在效率不高和结果不够准确的技术问题。
发明内容
有鉴于此,本发明提供了一种基于Spark分布式内存计算的空间K均值聚类方法,用以解决或者至少部分解决现有技术中的方法存在的效率不高和结果不够准确的技术问题。
为了解决上述技术问题,本发明提供了一种基于Spark分布式内存计算的空间K均值聚类方法,包括:
步骤S1:根据集群中计算节点的数量,对所有输入数据进行分区,将所有数据均匀分布至各个计算节点上;
步骤S2:对分区后的数据进行归一化处理;
步骤S3:采用分布式计算方式从归一化处理后的数据中,确定至少K个初始聚类中心,并在本地进行一次聚类分析,将初始聚类中心固定至K个;
步骤S4:采用分布式计算方式并行计算所有数据与K个初始聚类中心的距离,其中,数据与K个初始聚类中心的距离包括数据的空间位置信息,并将数据划分至与该数据距离最小的初始聚类中心所对应的聚类类别,再对所有聚类类别通过Reduce计算,更新聚类中心;
步骤S5:重复执行步骤S4直至迭代次数超过预设值或者聚类中心不再发生变化,得到更新后的聚类中心;
步骤S6:将更新后的聚类中心作为最终聚类中心,对所有数据进行类别划分,将数据划分至与其距离最近的类别。
在一种实施方式中,步骤S2具体为采用下述公式对分区后的数据进行归一化处理:
其中,x*表示归一化后的值,x为归一化前的值,min为所有数据中该列的最小值,max为所有数据中该列的最大值。
在一种实施方式中,步骤S3具体包括:
步骤S3.1:从在分区后的数据中筛选出一条所有属性值均不为空的数据作为初始聚类中心,并将其加入聚类中心集合中;
步骤S3.2:将聚类中心集合进行广播,使集群中的所有计算节点获得聚类中心的信息;在每个节点上,以分布式计算方式计算该节点上所有数据与聚类中心的距离,其中,数据与聚类中心的距离包括数据的空间位置信息,并将计算得到的最小距离作为数据属性值进行保存;
步骤S3.3:根据数据与聚类中心的距离,采用轮盘法选择出聚类中心,重复执行步骤S3.2~S3.3,直到聚类中心集合的大小超过预设的K个类别;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910862008.1/2.html,转载请声明来源钻瓜专利网。