书城计算机网络智能计算方法概论
7554300000025

第25章 量子聚类EDQC算法

量子力学研究对象的普遍性使它在科研中发挥着越来越大的作用,众多领域的科学研究都要用到量子力学,计算机领域更是期待着量子计算机的出现。所以说,研究量子知识在数据挖掘技术方面的应用是意义重大的。量子力学研究的是粒子在hilbert空间中的分布,由波函数描述粒子的分布状态,由势能函数决定粒子的分布。因此,受到物理学中量子特性的启发,出现了一个基于相关点的pott自旋和统计机理的量子聚类模型,解决了众多聚类方法无法解决的问题。在应用量子特性的聚类算法中,经典的量子聚类方法是david horn和assaf cgottlieb提出的量子聚类算法(qc),该算法采用梯度下降的方法,通过一定的学习速率求解势能最小值,从而找到聚类中心,再用一个固定的度量标准对样本聚类,是对尺度空间聚类和支撑矢量积聚类固有思想的一种扩充。此外,2007年,李志华等人改进了量子聚类算法(qc),提出edqc算法,该算法改进了qc算法在迭代过程等方面的缺点。本书针对qc算法在样本预处理、度量距离和迭代过程方面的不足,利用指数形式的距离函数,通过改进聚类步骤,提出了基于指数形式度量距离的量子聚类算法(EDQC),使聚类结果更准确,且对多类样本不需预处理,实验证明指数形式的距离函数使EDQC算法在样本预处理方面比qc和edqc算法更好。

数据聚类方法通常是基于几何或概率考虑的,而基于数据空间中点位置的无监督学习分类问题的定义通常是病态的。因此,基于其他领域研究的经验在构造新的启发式算法时或许颇为有用。这里我们给出了一个基于量子力学工具的模型。

我们从尺度空间算法开始,先介绍parzen窗的概念。Parzen是非参数估计的一种,非参数估计是密度函数的形式未知,也不作假设,利用训练数据直接对概率密度进行估计,又称作模型无关方法。

edqc算法使用基于数据概率分布的parzen窗估计。使用高斯核函数,该高斯核函数是由概率分布为(14.2)式的d维欧几里得空间中的N个数据点中产生的,再到全面的标准化,该表达式为一个全面的标准化形式:

其中,xi是数据点。看来将函数的最大值与聚类中心关联在一起是自然的。

相同种类的高斯是另一种方法,支撑矢量机聚类的基础,将抽象的hilbert空间中的向量和N个数据点xi相关联。

这里我们仍然考虑hilbert空间,但与核方法不同的是,在核方法中,hilbert空间是隐式的,而我们使用的是作为hilbert空间基本框架的Schrdinger等式。所以说,EDQC算法和QC算法强调的是Schrdinger势能,该势能的最小值将决定聚类中心。并且这个势能是Schrdinger等式的一部分,y是它的一个解。

14.1二维数据空间的例子

14.1.1Crab数据

为了显示新方法的优良性能,本书讨论了crab数据集合。该数据集合定义在一个五维的参数空间上。当根据相关矩阵的第二和第三个主成分来分析时,可以将200个样点较好地分到四类中。因此将这个问题当成我们的第一个测试实例。我们给出了数据以及参数宽度为的parzen概率分Y(x)图中。我们观察到一个最大值;不同符号标记四类数据。显而易见,根据文献中的方法,这个宽度还不是足够小到能推出正确的聚类。因此我们推断必需的信息已经够用了。然而,需要用量子聚类方法得出结果。

势能在数据区域外以平方速度增长。这是等式(14.3)中:

的普通特性,E设置了可以发现势能结构的相关尺度。如果减小宽度,可得到更多的结构。因此,对于s=1/2,会出现多于两个的最小值。尽管如此,它们的位置较高而且只包含较少的几个数据点。

14.1.2iris数据

第二个例子采用Iris数据集。该数据集是一个标准的测试集合,可以从uci知识库得到。这里,在由前两个主成分定义的二维空间中,应用EDQC算法中聚类,显示了s=0.25的情况,给出了一个基本较好的分类结果。将150个样点分别分到了它们本应属于的三个类别中。

14.2 指数形式的距离公式

在聚类算法中通过度量距离指派数据点时,多数采用欧氏距离去度量,X={x1,x2,…,xn}是数据集,xik,xjk表示k维空间中的向量。

14.3EDQC算法描述

利用上面得到的指数形式的距离度量公式可将数据点指派到相应的聚类中心中。在聚类过程中,应先求出数据点势能的大小,再用其确定聚类中心,然后完成数据点的指派,因此,EDQC算法分成六步完成。量子聚类算法EDQC描述如下:

第一步初始化d,k是聚类个数,d是度量距离。

第二步计算样本的势能V。

第三步在样本的{Vn}中由小到大选出k个势能点,相应的数据点xi((1≤i≤k))做为k个聚类中心。

第四步选取一个未聚类的样本,计算它与k个聚类中心的距离,d(i,c),(1≤c≤k)表示第i个数据点到第c个聚类中心的距离,找出min(d(i,c)),说明第i个数据点划分到相应的第c类中,并从样本集X中删除这个样本。

第五步若X不为空,则转第四步。

第六步如果X为空,算法结束。

由以上算法产生k个聚类,聚类中心用nk(1≤i≤k)表示。EDQC算法在指派数据点时,不需像qc算法的迭代过程,且采用了指数形式的距离公式,因此减少了运行时间,降低了数据预处理方面的要求,而且提高了聚类准确度。

14.4s参数的确定

在crab数据实验中,当s减少到1/2时,V(x)的最小值变得更深并且产生了两个新的最小值。然而,第二个实验并不是较显着,因为它们具有较高的值。因而,如果我们根据数据点在V(x)表面的地形位置将它们分到不同的类,那么s=1/2和会得到大致相同的聚类指派。当s进一步减小时,y中的最大值越来越多,而V中的最小值也越来越多。

算法中参数s表示要探测的距离。因此,我们期望找到与临近信息同等重要的聚类。所以,可以持续变化s,以寻求聚类解的稳定性,或主动限制s取得较高的值,一旦基本上没有类被波及就停止搜索。

14.5EDQC算法实验分析

14.5.1PCA预处理

由于聚类处理的数据量是海量的,而且形式是多样的,所以在做分析时,为了能得到更好的效果,需要做一些预处理。在预处理中,PCA预处理是比较有代表性的处理之一。

由于各种测量到的数据通常是以矩阵的形式记录、表达和存储的,实际中的很多数据信息往往是重叠与冗余的。从线性代数的观点来看,就是说这些数据矩阵中存在相关的行或列。因此需要对其进行处理和提炼,抽取出有意义、独立的变量。一般来说,我们希望能用一个或少数几个综合指标来代替原来的分数表做统计分析,而且希望新的综合指标能够尽可能地保留原有信息,并具有最大的方差。主成分分析(Principal Component Analysis,简称PCA)是一种常用的基于变量协方差矩阵对信息进行处理、压缩和抽提的有效方法。

Pca的目的是压缩变量个数,用较少的变量去解释原始数据中的大部分变量,剔除冗余信息。即将许多相关性很高的变量转化成个数较少、能解释大部分原始数据方差且彼此互相独立的几个新变量,也就是所谓的主成分。这样就可以消除原始变量间存在的共线性,克服由此造成的运算不稳定、矩阵病态等问题,压缩变量个数,剔除冗余信息,使模型能够更好地反映真实情况。

PCA分析在很多领域中都有广泛的应用(模式识别、化学组分的定量分析、多元物系的组分数目确定、动力学反应机理的确定等)。

PCA分析原理是根据方差最大化原理,用一组新的、线性无关且相互正交的向量来表征原来数据矩阵的行(列)。这组新向量(主成分)是原始数据向量的线性组合。通过对原始数据的平移、尺度伸缩(减均值除方差)和坐标旋转(特征分解),得到新的坐标系(特征向量)后,用原始数据在新坐标系下的投影(点积)来替代原始变量。

PCA分析能找到表现原始数据中最重要的变量的组合,通过表示最大的方差,能直观有效地反映出样本之间的关系,能从最大的几个主成分的得分来近似反映原始的数据阵的信息。

14.5.2EDQC算法实验分析

为了验证EDQC量子聚类算法的有效性和可行性,本书在iris样本集合上做了聚类实验,该数据集是一个标准的测试集合,可以从uci知识库得到。它包含150个样本,可分成3类四维样本,每类样本数是50个,其中一类和其他两类线性可分,另外两类线性不可分,实验用edqc和qc两个算法分别对样本做聚类实验。为了能够更好地比较聚类效果,本书利用了聚类准确度这个概念,它是被正确聚类的数据点与样本数的比值。

选择qc算法时,若不对样本进行预处理,在d取值非常小时,才能分成三类,但错分的数据点相当多。若对样本进行svd和normc预处理,在d=0.6时,能将样本分成三类。如果对样本进行PCA预处理,在两个主成分定义的二维空间中,数据点被聚成两类,将线性可分的聚成一类,将线行不可分的聚成一类,左侧的点是线性可分的一类,右侧的点是线性不可分的一类。

本书中,在采用EDQC算法时,若在过程中用欧氏距离度量,数据集则需预处理,否则会有大量的数据点将被错分。如果采用指数形式的距离公式度量数据点,则数据集不需任何的预处理,就能划分成三类,且错分的数据点比较少。

从上表可知,qc算法需对样本做svd和normc预处理且在d=0.6时,聚类准确度为82%,但在第二类和第三类的错分点比较多,这两类是线性不可分的。EDQC算法在对数据点不做任何处理时,聚类准确度便达到了90.6%,得到了满意的结果。

14.6EDQC算法在更高维空间的应用

在高维空间的问题上,本书采用了qc算法的结论。在iris问题中,采用前两个主成分分量就得到了较好的聚类结果,但是在crab问题中,描述正确的分类必须是第2、3个分量。然而,一旦意识到这一点,放入第一个主成分分量也不会带来不好的结果,这需要在由前三个主成分分量张成的三维空间上运行。在高维空间中,用较好的计算网格计算V(x)是艰巨的任务。为了减小复杂度,这个方法不仅可以对最小值所处的位置给出一个近似的估计,而且能将复杂度减少到N2而与维数无关。

本章针对qc算法的缺点,提出了基于指数形式度量距离的量子聚类算法EDQC,描述了它的运行原理、步骤和方法,并用实验分析了此算法。该算法在聚类过程中,利用势能公式得出所需的k个势能最低点,并且直接使用改进的指数形式的距离公式度量数据点与k个聚类中心的距离。实验表明采用EDQC算法聚类,iris数据集不需预处理便能聚成三类,且在聚类准确度上比qc更高。