论文部分内容阅读
聚类分析是一种原理简单、应用广泛的数据挖掘技术,即把若干事物按照某种标准归为几个类别,其中较为相近的聚为一类,不那么相近的聚于不同类。聚类分析在客户分类、文本分类、基因识别、空间数据处理、卫星图片分析、医疗图形自动检测等领域有着广泛的应用,已经成为数据挖掘领域的一个研究热点。 传统的聚类分析需要指定类簇的数目。然而实际应用中很多数据是未知的,在数据未知时,指定数目的传统聚类方法变得不大适用。基于Dirichlet过程混合模型的聚类算法,在对未知数据进行聚类时,可以不指定聚类的目标数目,而是根据数据的性质自动聚类出个数,从而达到较好聚类的效果。Dirichlet混合模型聚类算法也有不足之处,由于计算量比较大,造成聚类的时间成本增加,从而影响Dirichlet混合模型聚类算法的广泛使用。 基于GPU的通用计算主要研究如何利用GPU进行更为广泛的应用计算。NVIDIA发布的CUDA,使得开发非图像的应用变得相当简单。利用CUDA可以将GPU高速并行处理能力应用到大规模计算领域,从而大幅度提高程序的运算速度。 本文结合Dirichlet过程混合模型聚类算法的优越特性,利用GPU强大的计算能力,提出了基于GPU的Dirichlet过程混合模型聚类算法,高效地对类数未知的数据进行聚类。在此基础上,我对GPU代码进行了共享内存优化,提高数据重用性,以及改变并行策略等优化。这些方法进一步提高了程序性能,再加上对运行参数的调优,最终使GPU上的Dirichlet过程混合模型达到了接近200倍的加速。利用本文所述GPU程序处理微软的128维的人脸数据和UCI的561维人体动作数据,在保持聚类精度接近(NMI指标相差小于0.5)的情况下,与CPU相比,分别达到10和198倍的加速。这样在保证Dirichlet混合模型聚类算法的质量的同时,更提高了聚类算法的速度,从而有效的为进一步科研提供了有益参考。