论文部分内容阅读
作为一种重要的数据分析方法,聚类分析按照某种相似性度量将样本对象划分到不同的聚类中,并要求同一聚类中的样本相似性尽可能地大,而不同聚类中样本相似性尽可能地小。同时,作为一种无监督学习方法,聚类分析在对样本进行划分前并不了解样本的目标属性。但是在许多实际应用中,在获得大部分未标记样本之外,通常还可以获得少部分带有监督信息的样本,半监督聚类便是研究如何利用这些少量的监督信息来指导未标记样本的聚类过程。半监督聚类中通常包含两种类型的监督信息,一种是样本的类别标记,另一种是一对样本的成对约束关系,其中样本的类别标记结合样本信息可以构成Seeds集。为了克服传统半监督聚类算法中监督信息使用不充分的问题,本文结合使用了样本的类别标记和成对约束这两种监督信息指导Kmeans聚类过程,提出一种基于Seeds集和成对约束的半监督聚类算法SC-Kmeans(Kmeans based on Seeds set and pairwise constraints)。算法首先利用Seeds集对成对约束规模进行扩充,然后根据Seeds集计算初始聚类中心,优化聚类初始化效果,最后将扩充后的成对约束集引入算法中指导样本的划分过程,要求样本在划分过程中不能违反成对约束条件。同时,为了获得更高质量的监督信息,本文通过对监督信息中所含信息量的分析和判断,将主动学习算法引入到SC-Kmeans中,设计一种主动半监督聚类算法Active SC-Kmeans。该算法使用最远距离优先选择策略对未标记样本提出标记请求,选择与Seeds集中样本距离最远的未标记样本对象进行标注,能够通过尽量小的代价选取出信息含有量较高的监督信息,提高SC-Kmeans算法聚类准确率。针对目前聚类算法处理大规模数据集时间效率较低的问题,本文利用Spark并行计算框架,将提出的SC-Kmeans算法实现并行化处理。根据SC-Kmeans算法需要频繁迭代运算的特性,应用Spark计算框架基于内存的计算方式,设计出SC-Kmeans的并行化算法Spark SC-Kmeans。通过在UCI三个数据集上实验表明,本文提出的主动半监督聚类算法Active SC-Kmeans能够获得信息含有量更高的监督信息,有效提高聚类准确率。同时,将人工生成的大规模数据集作为测试数据,在Spark集群中实现了SC-Kmeans算法的并行化,证明Spark SC-Kmeans算法对数据集规模有良好的适应性,能够有效地缩减聚类时间。