论文部分内容阅读
聚类是传统无监督学习的代表,它基于样本之间的相似度,将相似的样本划分到同一个簇,不相似的样本划分到不同的簇。然而,大多数传统的聚类算法只能产生一个聚类结果,在许多现实应用中,针对同一数据集,却可能存在多种划分方式,并且每一种划分方式都可以从不同的视角来解释得到的聚类结果。例如:水果可以根据颜色划分,也可以通过品种划分;在生物信息学中,蛋白质可以根据氨基酸序列划分,也可以通过3D结构划分。显然根据不同的视角聚类会得到不同的聚类结果,进而从不同的角度来反映数据的内在结构,因此从一个数据集中挖掘多种不同的聚类结果是非常具有现实意义。多聚类(Multiple Clusterings)研究近年来成为聚类分析中的热点和难点。现有的多聚类算法大致分为无监督和半监督的方式。无监督多聚类算法通过将冗余控制整合到统一的目标方程可以同时挖掘多个聚类,它们的不足是:(1)不能很好的控制多个聚类的差异性,聚类结果之间存在较高的冗余;(2)随着多聚类数目增加,目标方程不仅难以优化,冗余控制也随之变差。半监督多聚类算法利用已知聚类约束后续聚类的产生,它们的缺点是:(1)易受到已知聚类结果的影响,若前期聚类的结果较差,则后续的聚类结果都会受到影响;(2)在特征空间的独立性控制并不完善,通常仅使用正交的策略,且得到的多个聚类结果的可解释性较弱。此外,现有的多聚类算法几乎都仅关注样本维度的聚类,忽略了特征维度的聚类结果,而同时从样本和特征维度进行聚类(即双聚类Co-Clustering)同样也是研究者关注的重点。本文针对多聚类研究中存在的上述问题,结合独立子空间分析和基于矩阵分解的聚类方法,以提高多聚类的准确性和可解释性,以及扩展多聚类的研究维度,围绕多单向聚类和多双向聚类进行研究,主要工作如下:1.提出了一种基于独立子空间分析和非负矩阵分解的多聚类算法(MISC,Multiple Independent Subspace Clustering)。MISC首先利用独立成分分析,对特征进行独立子空间划分;为了确定子空间的个数,本文利用最小编码技术对不同子空间的划分情况进行编码,从中选择最小编码长度对应的子空间划分;然后针对不同的独立子空间分别利用基于非负矩阵分解的单聚类算法进行聚类;此外,考虑到数据的流形结构和非线性簇,将核技巧和流形正则项嵌入到非负矩阵分解的目标方程中指导分解,最终得到多个优化的子空间聚类结果。在模拟数据和真实数据上的实验结果都表明MISC相对于其它多聚类算法不仅能够对子空间进行更好的划分,而且能得到更高精度的多聚类结果,这些结果之间还具有较大的差异性。2.提出了一种基于三因式非负矩阵分解的多双聚类算法(MultiCC,Multiple Co-Clusterings),拓展了现有多聚类研究的维度。MultiCC通过执行一次三因式非负矩阵分解可以得到一个行簇指示矩阵和列簇指示矩阵,即一个双聚类结果;为了得到多个双聚类结果,同时降低它们之间的冗余,MultiCC对原始矩阵进行多次分解,同时利用行簇指示矩阵和列簇指示矩阵构建了两个冗余控制项,分别约束行簇和列簇的冗余;最后将该冗余控制项整合到目标方程中指导矩阵分解,从而指导多个差异性双聚类的发现。在多种真实数据集上的多种评价度量和基因表达数据集的上的可视化结果表明,相比现有算法,MultiCC不仅能得到多个较低冗余的单向聚类,而且能挖掘多个高质量的双聚类。3.提出了一种基于三因式非负矩阵分解的子空间多双聚类算法(MCC-SS,Multiple Co-Clusteirngs in Subspaces),优化了MultiCC算法,从数据的子空间进行多双聚类挖掘。MCC-SS假设多个双聚类是嵌入在不同的子空间中的,它首先通过引入一个投影矩阵将原始数据映射到新的子空间,然后借鉴MultiCC的方式,利用三因式非负矩阵分解得到的列簇指示矩阵和不同的投影矩阵构建冗余控制项,最后将该项整合到目标方程中指导矩阵分解,通过同时优化投影矩阵、行簇和列簇指示矩阵得到多个子空间的双聚类结果。在多个真实数据集上的结果表明,相比现有的多聚类算法,MCC-SS不仅能得到多个较低冗余的单向聚类,而且能有效的挖掘多个嵌入在子空间的双聚类。