论文部分内容阅读
对大数据时代产生的海量数据进行标注的成本过于高昂,聚类分析作为一种无监督学习方法,能够对海量的无标签数据进行挖掘,发现数据中蕴含的规律。K-Means算法是聚类分析中的代表性算法,具有简单,速度快,良好的伸缩性等优点。但是,其存在聚类数目K需要人工指定,性能依赖于初始聚类中心的选择等问题。针对这些不足,提出改进K-Means算法来提高聚类质量,并利用Spark云计算框架进行并行处理提升算法的并行计算性能。主要研究及改进工作如下:本文提出了Spark-based Parallel Improved K-Means(SPIK-Means)算法。第一,针对K-Means算法中K值的主观性和初始簇中心的随机选择使得簇类结果不稳定并且容易陷入局部最小值的问题,提出一种改进K-Means算法用来提升算法运行效率。利用简化轮廓系数确定合适的K值,使用K-Means++算法选择出合适的K个初始簇中心,并将形态学相似距离MSD作为相似性度量方法。在UCI标准数据集上的仿真实验表明,改进后的K-Means算法在运行时间和准确度上都优于K-Means++算法和Spark-based Kd-Tree K-Means(SKDKMeans)算法。第二,改进K-Means算法在计算距离时比较费时,并且随着样本点数量的增加计算量随之增大,导致运行时间过长。为了解决该问题,改进算法结合了Apache Spark云计算框架提出了SPIK-Means算法,通过不同节点数和不同数据集间运行时间上的对比实验,结果表明SPIK-Means算法在集群环境下能保持良好的并行计算性能,有效提升执行效率。第三,利用提出的SPIK-Means算法对遥感图像数据进行了分类实验。通过SPIK-Means算法与K-Means++算法在并行环境下对遥感图像分类实验的效果对比,本文从总体精度和Kappa系数两个方面进行了总结。结果表明,SPIK-Means算法比K-Means++算法在遥感图像分类上更准确,性能更好。