The invention discloses a fast global K clustering mean clustering method using OpenCL acceleration. The steps are: (1) reading the data set and clustering total; (2) transferring data at the OpenCL hardware device end; (3) computing the centroid as the first initial cluster center; (4) using the K means algorithm clustering; (5) at the OpenCL hardware device end. Select the new initial cluster center point; (6) determine whether the current cluster center point is less than or equal to the total number of clusters, if, then execute (4) step, if not, the (7) step; (7) output clustering results. The invention can realize real-time processing massive clustering data on any hardware device supporting the open operation language OpenCL.
【技术实现步骤摘要】
使用OpenCL加速的快速全局K-均值聚类方法
本专利技术属于数据处理
,更进一步涉及数据挖掘
中的一种使用开放运算语言OpenCL(OpenComputingLanguage)硬件设备加速的快速全局K-均值(FastglobalK-means)聚类方法。本专利技术可以实现并行加速快速全局K-均值聚类方法,可在开放运算语言OpenCL硬件设备上实现对海量数据进行实时处理。
技术介绍
快速全局K-均值算法采用不依赖于任何初始参数值的确定性方法而不是随机搜索来得到初始聚类中心,解决了传统基于局部搜索的K-均值聚类方法聚类结果稳定性差的问题,并通过优化全局K均值增加新聚类中心的计算方法从而减小了运行时间。TCL集团股份有限公司在其申请的专利文献“一种并行化K-means改进方法及系统”(申请日:2016年6月22日,申请号:201610455944.7,公开号:CN106127244A)中公开了一种并行化K-means改进方法。该方法通过Spark大数据平台读取存放在分布式文件系统上的数据对象集,生成弹性数据集RDD;采用Map操作将所述弹性数据集RDD转化为向量数据集;通过Map操作对所述向量数据集进行Canopy计算,得到P个Canopy集合以及各个Canopy集合的中心点,将P个Canopy集合的中心点赋值给K个Cluster的中心点;通过Map操作对所述向量数据集进行K-means计算,输出聚类结果。该方法存在不足之处是,使用Spark平台实现的并行化K-means,代码无法在各种支持开放运算语言OpenCL的硬件设备上移植,可移植性不高,只 ...
【技术保护点】
1.一种使用OpenCL加速的快速全局K‑均值聚类方法,其特征在于,该方法使用开放运算语言OpenCL硬件设备,采用快速全局K‑均值聚类算法实现的,具体步骤包括如下:(1)读入数据集和聚类总数:(1a)读入以二维矩阵方式存储的数据集,矩阵的行表示数据的个数,列表示数据的属性;(1b)读入聚类总数;(2)对二维矩阵的数据集进行转置操作:(2a)将数据集中的二维矩阵拷贝至硬件设备全局存储器中;(2b)每个线程负责数据集二维矩阵中的一个数据点,计算每个线程的数据点在转置之后矩阵中的索引,将转置之后的二维矩阵存储在硬件设备全局存储器中;(3)选取第一个初始聚类中心点向量:计算二维矩阵数据集每列数据的质心,将所有列数据的质心组成第一个初始聚类中心点向量,加入到聚类中心向量集合中;(4)对二维矩阵数据集使用K‑means算法进行聚类操作:(4a)使用欧式距离公式,计算二维矩阵数据集每行数据与聚类中心向量集合中每个聚类中心向量之间的欧氏距离值,得到欧式距离二维矩阵,矩阵的行表示数据个数,列表示聚类中心向量集合中聚类中心向量的个数;(4b)找出各个数据与所有聚类中心向量欧氏距离最小值对应的聚类中心向量 ...
【技术特征摘要】
1.一种使用OpenCL加速的快速全局K-均值聚类方法,其特征在于,该方法使用开放运算语言OpenCL硬件设备,采用快速全局K-均值聚类算法实现的,具体步骤包括如下:(1)读入数据集和聚类总数:(1a)读入以二维矩阵方式存储的数据集,矩阵的行表示数据的个数,列表示数据的属性;(1b)读入聚类总数;(2)对二维矩阵的数据集进行转置操作:(2a)将数据集中的二维矩阵拷贝至硬件设备全局存储器中;(2b)每个线程负责数据集二维矩阵中的一个数据点,计算每个线程的数据点在转置之后矩阵中的索引,将转置之后的二维矩阵存储在硬件设备全局存储器中;(3)选取第一个初始聚类中心点向量:计算二维矩阵数据集每列数据的质心,将所有列数据的质心组成第一个初始聚类中心点向量,加入到聚类中心向量集合中;(4)对二维矩阵数据集使用K-means算法进行聚类操作:(4a)使用欧式距离公式,计算二维矩阵数据集每行数据与聚类中心向量集合中每个聚类中心向量之间的欧氏距离值,得到欧式距离二维矩阵,矩阵的行表示数据个数,列表示聚类中心向量集合中聚类中心向量的个数;(4b)找出各个数据与所有聚类中心向量欧氏距离最小值对应的聚类中心向量,将所有聚类中心向量相同的数据划分为同一类;(4c)采用聚类中心更新公式,更新聚类中心向量集合中的聚类中心向量;(4d)判断更新后的聚类中心向量是否等于更新前的聚类中心向量,若是,执行步骤(5),否则,执行步骤(4a);(5)选取新的初始聚类中心点:(5a)将二维矩阵数据集每行数据与所有聚类中心向量欧氏距离的最小值拷贝至开放运算语言OpenCL硬件设备全局存储器中;(5b)通过合并访存的方式,访问存储在硬件设备全局存储器中的转置之后的二维矩阵,按照增量公式,计算每个线程的增量值,将增量值存储在硬件设备全局存储器中;(5c)从每个线程的增量值中找出最大增量值对应的索引值,将其存储在硬件设备全局存储器中;(5d)将存储在硬件设备全局存储器的最大增量值对应的索引值拷贝至主机端内存中;(5e)将最大增量值对应的索引值在二维矩阵数据集中对应数据,作为新的初始聚类中心向量,加入聚类中心向量集合中;...
【专利技术属性】
技术研发人员:朱虎明,钱新宇,焦李成,王坤,缑水平,田小林,张小华,马晶晶,马文萍,
申请(专利权)人:西安电子科技大学,
类型:发明
国别省市:陕西,61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。