摘要:在分析经典聚类判别分析方法实质的基础上,提出了一种新的聚类判别分析框架,改进了一种基于样本指标值频度计算的两总体判别分析算法,提高了在对所有参与建立判别模型的样本进行判别时的计算速度;给出了建立在此改进判别分析算法基础上的一种动态聚类判别分析算法的设计,并实现了所有算法。进行相应的实证研究,结果表明以此聚类判别分析框架对给定样本集合进行分析,可以迅速得到多个合理的聚类结果以及对聚类结果的清晰解释,既可以对已有的聚类结果进行验证,又可以进行数据的探索性分析。
关键词:聚类分析; 判别分析; 动态聚类
0引言
经典聚类分析算法是基于距离计算的。然而除马氏距离定义外,其他距离定义都存在样本指标的量纲处理问题;除马氏距离和斜交空间距离定义外,其他距离定义都存在样本指标的相关性处理问题;另外,包括马氏距离在内的所有距离定义都存在将用于聚类的指标同等对待的缺点,不能反映不同指标对聚类结果的贡献程度。
一般情况下,在确定样本间距离计算方法的基础上,用不同的聚类分析方法得到聚类的结果是不会完全一致的。这是因为在实际应用中,许多对象在不同类之间本身并无清晰的划分。这导致了在既定用于聚类的指标组合的情况下,用不同的聚类方法对同一组样本进行分析会得到不同的聚类结果。如上所述,即使使用同一种聚类方法,有时由于样本的排列顺序不同,也可能导致不同的分类结果。这就提出了对不同的聚类方法进行评价的问题。关于所用方法好坏的评价,现在还没有一个合适的标准。Edwards 和CAVALL I?sforza (1965) 曾建议把样本分成两类,使得两类间的离差平方和最大[1]。D.Fisher Walter也指出,应该寻找使类内差异最小的聚类方法[2]。因此,评价不同聚类方法的一个重要方面,就是看这些方法得到的聚类结果在类内的接近程度和在类间的相隔程度。一个较好的分类方法应该得到类内差异较小、类间差异较大的聚类结果。在实际应用中,一般采用以下两种处理方法:a)根据分类问题本身的专业知识,结合实际需要来选择分类的方法,并确定分类的个数;b)用多种方法对数据进行分析处理,把结果的共性取出来。如果用几种方法的某些结果都一样,则说明这样的聚类确实反映了事物的本质。将有争议的样本暂放一边,或者用其他方法如判别分析进行处理归类。另外,在聚类分析方法既定的情况下,同一组样本采用不同的指标组合进行聚类分析,通常也会得到不同的分类结果。产生不同结果的原因主要是由于不同的指标组合测度是样本间的不同侧面的相似程度,在进行聚类分析时存在指标组合选择的问题。一般是根据聚类的实际需要进行指标的选择,这是一个比较复杂并且带有主观性的问题。实践中,在开始进行聚类分析时,通常是先选择多种指标组合分别进行聚类,然后对聚类分析的结果进行对比分析,以确定出合适的测度指标。
判别分析产生于20世纪30年代,是利用已知类别的样本建立判别模型,为未知类别的样本判别的一种统计方法。近年来,判别分析在自然科学、社会学及经济管理学科中都有广泛的应用。判别分析的特点是根据已掌握的、历史上每个类别的若干样本的数据信息,总结出客观事物分类的规律性,建立判别公式和判别准则。当遇到新的样本点时,只要根据总结出来的判别公式和判别准则,就能判别该样本点所属的类别。判别分析按照判别的组数来区分,可以分为两组判别分析和多组判别分析。本文仅研究两组判别分析。在众多的判别分析方法中,最直观的是距离判别法。
距离判别的思想是计算待判样本到第?i?类总体的平均数的距离。哪个距离最小就将它判归到哪个总体。所以,距离判别法的任务就是构造一个恰当的距离函数,通过样本与某类别之间距离的大小判别其所属类别。这里仅讨论两个总体的距离判别法。距离判别只要求知道总体的数字特征,不涉及总体的分布函数。当参数未知和协方差时,就用样本的均值和协方差矩阵来估计。
从距离判别法可以看到判别规则是一个线性函数。由于线性判别函数使用简便,希望能在更一般的情况下建立一种线性判别函数。Fisher判别法由Fisher在1936年提出,是根据方差分析的思想建立起来的一种能较好区分各个总体的线性判别法。该判别方法对总体的分布不作任何要求。
从两个总体中抽取具有?p?个指标的样本观测数据,借助于方差分析的思想构造一个线性判别函数:
距离判别法是基于距离计算的,用构造线性判别函数方法进行样本判别的Fisher判别法也存在着类似基于距离计算的聚类分析方法当中的不足:
a)将总体和样本的多个指标赋予了同等的判别能力,而这与现实是不相符合的,即不同的指标在判别样本的归属时具有不同的判别能力。
b)没有对用于建立判别分析模型的总体指标进行筛选。这在两总体的某指标没有显著差异时进行判别分析的意义不大,误判的概率很大[3,4]。
c)距离的计算不可避免地会带来量纲上的问题[5]。
d)距离判别方法简单实用,但没有考虑到每个总体出现的机会大小,即先验概率,没有考虑到错判的损失。Bayes判别法正是为了解决这两个问题提出的判别分析方法,其判别效果更加理想,应用也更广泛。本文将在实证研究部分用Bayes 判别方法对涉及的问题进行分析,作为与新算法计算效果的一个对比。
在回归分析中,变量的好坏直接影响回归的效果。在判别分析中也有类似的问题。用于建立判别准则的指标的选择是判别分析中的一个重要问题。如果在某个判别问题中,将最重要的指标忽略了,相应的判别函数的效果一定不好;另一方面,如果引入了一些判别能力不强的指标,不仅会增加计算量,还会严重地影响判别的效果。但是在许多问题中,事先并不知道哪些是主要指标。因此筛选变量的问题就非常重要,从而产生了逐步判别法。逐步判别法与逐步回归法的基本思想类似,都是采用有进有出的算法,即逐步引入变量,每引入一个重要的变量进入判别式,同时也考虑较早引入判别式的某些变量。如果其判别能力随新引入的变量而变为不显著了(如其作用被后引入的某几个变量的组合所代替),应及时从判别式中把它剔除,直到判别式中没有不重要的变量需要剔除,而剩下的变量也没有重要的变量可以引入的判别式时,逐步筛选结束。这个筛选过程实质就是作假设检验。通过检验找出显著性变量,剔除不显著的变量,得到用于建立判别式的变量组合后,可用各种方法建立判别函数和判别准则。
实际上,以上提到的不论是距离判别法、Fisher判别法,还是Bayes判别法、逐步判别法,其出发点都是把给定的分组作为构造判别函数的依据和出发点,其最终结果都是构造一个线性判别函数。它们仅仅是判别函数构造思想上的差异。距离判别法基于距离判别思想;Fisher 判别法基于方差分析思想,判别式的形式为距离判别式的一般形式;Bayes判别法基于条件概率思想;逐步判别法基于假设检验思想确定用于判别的指标,但其判别式的确定仍由其他判别分析方法确定。
以上各种判别分析方法中,仅有逐步判别法的基本思想中考虑到了不同指标具有不同的判定能力,但是其思想的具体体现仅在于确定用于构建判别式的指标,并没有给出各个指标具体的判别能力大小的差异。实际上不仅不同指标的判别能力存在差异,而且在筛选掉部分指标的同时也会丢失该部分指标所包含的判别信息。
对于一组给定的样本,对其进行聚类分析时,可以应用不同的聚类方法对不同的指标组合进行聚类分析,同时也将得到多组不同的聚类结果。对于某些指标组合下的聚类结果,结合实际可能会得到比较符合实际意义的解释,对此类聚类结果可以为其构造特定的判别模型,用于新样本类别的判别。因此,聚类分析的实质是对不同的指标组合下的样本分类组合的可能性进行搜索,找出符合特定聚类定义的组合。其作用是寻找满足特定需求的,或者说可以给出较好解释的聚类结果。判别分析的实质是根据历史信息或者聚类的结果建立判别标准,用于对参加聚类的样本和新的样本的判别。聚类分析和判别分析之间存在着紧密的联系。聚类分析的结果作为进行判别分析的基础;而判别分析不仅可以用于对新样本进行判别,而且另一个重要的作用在于校验聚类分析结果的正确性,即回判。
基于以上的分析结论,传统的对数据的聚类判别分析流程一般是先有聚类分析,然后在其之上的判别分析。本文将借鉴经典聚类分析和判别分析中的部分思想,从聚类分析和判别分析的实质出发,逐步构建出一类有异于传统分析思路的样本聚类判别分析算法,并尝试在新算法中解决经典聚类判别分析方法中存在的部分问题。
1动态聚类判别分析算法的设计和实现
1.1新的聚类判别分析框架
对于一组给定的需要进行聚类分析和判别分析的样本集合,新的聚类判别分析框架基于以下基本事实:
a)对于给定的样本序列,有有限种分组方案。
b)用传统聚类分析方法得出的结果并不总能遍历以上所有的分组可能。不仅因为其中部分分组在任何指标组合下都不合理,还因为传统聚类分析方法得出的结果本身就有限。在指定指标组合、指定样本排列顺序的情况下一种聚类方法仅能给出一个聚类结果。
c)对于用聚类方法得不出的分组方案,存在部分用判别分析进行判别回判率为百分之百的分组方案。
d)对于既定的分组,不同指标在区分该分组的能力上存在差异。不同组的某些指标差异明显,有些并没有明显差异。
新的聚类判别分析框架的设计基于以下基本假设:对于任意一种分组方案,如果判别分析的回判正确率足够高,那分组就是合理的和可以接受的。因此,新的聚类判别分析框架设计的基本思想是聚类分析建立在判别分析的基础之上。据此设计的新算法中并不包括具体的聚类分析算法,仅仅包括判别分析算法。
本文中应用的判别分析算法基于文献[6]提出的基于样本指标值频度计算的判别分析算法。该两总体判别分析算法的思想与逐步判别法的思想有一定的相似之处。不同之处在于其核心思想不是筛选变量,而是筛选指标值,是逐步筛选出具有显著判别能力的指标值;不是根据用具有显著判别能力的变量建立判别式,而是用筛选出的具有显著判别能力的指标值建立判别模型;其判别模型不是线性判别式,而是一个复杂的判定模型系统;得出的结果不是某样本的判定结果,而是某样本属于某总体的概率。该算法筛选指标值的基本思想为:对于同一指标而言,假设两组中所有样本的该指标值为一维空间上的点。如果两组内距离最近的两点距离小于或者等于这两点中任意一点到该点所在组的其他任意一点的距离,则这两点根本就不具有判别能力,应该剔除。为提高该算法的计算速度,进行了如下两点优化,在程序实际运行中取得了良好效果:
a)对某指标进行计算时应用冒泡算法对所有指标值进行排序。该数据预处理大大提高了指标值的筛选速度。
b)因为对样本的判别问题是通过计算该样本的各个指标值上的判别概率得到的,从对数据库表的访问效率出发,进行判别分析时不是依次对每一个样本进行判别,而是按照指标的顺序依次计算所有样本的某指标值在该指标下的判别概率,并且若某指标的权重为零时不需要计算任何样本在该指标下的判别概率,最后对每一个样本进行判别。
本文依据以上提出的聚类判别分析框架,以改进的两总体判别分析算法为基础,提出了一种动态的聚类判别分析算法的设计,并在实现算法的基础上进行了相应的实证研究。
1.2两总体动态聚类分析算法的设计和实现
两总体动态聚类分析算法的设计基于两总体判别分析算法。其基本思想在于从某初始判别状态出发,不断修正判别分析中错判的样本分组,直到所有样本已经判别,并且回判率为100%或出现错判循环为止。
根据样本初始判别状态的情况,这里把动态聚类分为有指导的动态聚类过程和无指导的动态聚类过程。有指导的动态聚类过程是指在进行聚类分析之前根据实际经验对所有或者部分样本进行组别的指派,这有助于加快动态聚类的过程,并产生期望的聚类结果;无指导的动态聚类过程是指在进行聚类分析之前不进行任何初始判别状态的设置。其中有指导的动态聚类与无指导的动态聚类的区别在于,无指导的动态聚类可能导致聚类过程中判别次数的增加,这在进行大样本聚类时,时间开销将成倍增加;另一个可能产生的结果是无指导的聚类过程会产生与预期不同的分类结果,即聚类的可能结果更多,可用于试探性分析。一般有指导的聚类分析过程可以很快得出与预期相符合的聚类结果。