背景技术
从海量的数据中挖掘有价值的信息是数据挖掘研究的目标,而数据聚类是数据挖掘中最常用、最有效的手段之一.层次聚类算法和基于划分的K-Means聚类算法是最主要的两种聚类方法,其算法简单、快速而且能有效地处理大数据集.层次聚类方法是通过将数据组织为若干簇,然后形成一个相应的聚类树。它没有使用准则函数,所潜含的对数据结构的假设更少,通用性更强,所以层次聚类得以在很多领域应用,例如聚类可以帮助市场分析人员从客户基本库中发现不同的客户群,用不同的购买模式来刻画不同的消费群体的特征;聚类可以用于界定基因和蛋白质的功能与分类;聚类对互联网信息挖掘具有重要的意义,能用来对web上的文档进行分类,以发现有用的信息.聚类分析能作为一种独立的工具来获得数据分布的情况,观察每个簇的特点,并对某些特定的节点进一步分析.
根据层次分解的方向——自底向上或自顶向下,层次聚类方法可以进一步分为凝聚式(agglomerative)和分裂式(divisive)层次聚类.无论是凝聚式还是分裂式层次聚类,其聚类基础都是对象之间的距离或相似度,相似度与距离对应,聚类对象的距离决定了聚类簇中的成员,也决定了聚类的层次结构.
对称距离存在于很多应用场合中,但是在实际应用环境中,对象间还存在着相当一部分的非对称距离的情况.例如,在线社会化书签系统中(Online Social Bookmarking),利用附加在每个书签上的标签(tag)之间存在的共现关系,构建非对称距离来度量热点标签之间的关系;在交通网络中,可以利用非对称特性流量特性实现路线的安排与控制;在生物信息基因调控网络中,不同基因之间的作用关系也是非对称的关系.采用非对称距离进行聚类带来两个挑战:
(1)由于距离是非对称的,难以选择两个距离最小的对象,所以需要确定选择两个聚类对象的适当机制;
(2)两个簇或者簇与对象间的距离计算机制.簇的距离计算是凝聚式层次聚类的合并核心,构建簇间距离计算机制是另外一个需要解决的问题.
Yadohisa在2002年提出了非对称距离聚类的思想,对聚类过程中形成的簇之间的单向距离做出了形式化的表达,并用参数形式刻画了常见链接算法,但是论文中没有涉及到非对称距离的对象选择方式,算法距离的效果也并不理想.
Akinobu Takeuchi在2007年对Yadohisa的合并连接公式做了修正和改进,提高了聚类的精度和召回率,但是文献还没有涉及到聚类对象的选择问题,其聚类结果仍然不够理想.
发明内容
以非对称距离的层次聚类作为研究对象,提出了解决非对称距离层次聚类中两个核心问题的一般方法。
本发明的目的是提供一种基于非对称距离下的层次聚类方法,它使得在非对称的情况下,能够进行高精度的聚类。
本发明的原理是:根据非对称距离矩阵,通过选择一个选择因子挑选出两个簇(对象),再通过选择任一连接算法对这两个簇(对象)进行合并,直至合并成一个簇为止。
本发明提供的技术方案如下:
1、基本记号与说明
假设有n个对象,记为{x1,x2,...,xn},其两两之间通过某种度量方式刻画他们的非相似性,称为距离.这些距离构成了一个矩阵(dij)n×n,矩阵元素代表两个对象之间的距离,对象i和对象j之间的距离记为dij(dij≥0),对象j和对象i之间的距离记为dji(dji≥0),如果dij=dji,则表示距离是对称的,如果dij≠dji,则表示距离是非对称的.矩阵中对角线元素dii=0表示对象与自身的距离为0.
采用非对称距离矩阵进行层次聚类,聚类过程中,采用凝聚式聚类过程,对每一步合并形成的簇用CI来表示.再用ni表示CI这个簇所包含的对象的个数.系统树图用来直观的表示聚类过程,hi表示CI在系统树图中的高度,也即参与合并的两个簇(对象)之间的距离.用CIJ来表示CI和CJ合并的结果,即CIJ=CI∪CJ.
2、算法表述
基于非对称距离的凝聚式层次聚类算法的描述如表1所示.
算法1
输入:非对称距离矩阵,其中矩阵每行(列)代表一个聚类对象.
输出:聚类系统树
1定义H0={x1,x2,...,xn}
2J=0
3DO
4t=t+1
5select CI,CJ from Ht-1 according to distance matrix
6CIJ=CI∪CJ
7Ht=(Ht-1-{CI,CJ})U{CIJ}
8update distance matrix
9while‖Ht‖≤2
10return H
表1非对称距离层次聚类算法
算法1中第5行表示从距离矩阵中选择满足一定条件的两个对象(簇)进行合并,由于距离是非对称的,单纯的选择距离最小的对象进行合并,无法反映对象之间准确的信息,例如A和B的距离很小,而B和A的距离很大,那么选择A和B合并时,需要兼顾A和B的距离与B和A的距离.所以需要定义如何选择合并对象.
我们定义选择因子作为选择对象的标准,根据常用的距离分析与比较,将选择因子分为四类,分别是绝对值最大/最小和平均值最大/最小
(1)(dij-dji)的绝对值最大,即|dij-dji|最大,定义|dij-dji|为选择因子值;
(2)(dij-dji)的绝对值最小,即|dij-dji|最小,定义|dij-dji|为选择因子值;
(3)(dij+dji)的平均值最大,即 最大,定义 为选择因子值;
(4)(dij+dji)的平均值最小,即 最小,定义 为选择因子值.
选择因子(1)表示对象的差异度最大;选择因子(2)表示对象的差异度最小,这两种因子可以刻画对象之间的差异而不单纯是距离;选择因子(3)表示对象的平均距离最大,该因子与传统距离最小相反;选择因子(4)表示两个对象的平均距离最小,它与对称距离的聚类算法相对应.
选择因子可以适应不同的聚类情况,根据聚类问题的特点选择适当的选择因子,而不是只依赖于距离的平均最小化.
在凝聚式层次聚类算法中,连接过程,也就是对两个不同的簇进行合并,是聚类的核心.常见的连接方法有单连接算法,全连接算法,平均连接算法以及加权连接算法等.由于对象合并形成簇,簇与簇,簇与对象的距离还是非对称的,所以传统的连接方法无法直接应用于非对称的连接,本文针对单连接算法,全连接算法以及平均连接算法定义了相应的连接方法.
单连接算法,两个簇之间的距离被定义为这两个簇中任意两个元素的最短距离.这个定义可以直接应用于非对称距离的情况,簇与簇之间的距离定义如公式(7)(8)所示.单连接算法的缺点在于如果簇X,Y中有两个距离彼此很近的点,而X中的其他点距离Y都很远,那么X和Y仍然会被聚类,则这样聚类不太合理.
全连接算法,全连接又称最远邻算法,定义距离为两个簇之间任意元素的最长距离.根据这个定义,我们用公式(9)(10)定义簇之间的距离.全连接方法弥补了单连接方法的缺点,倾向于找到一些紧凑的分类.
平均连接算法,平均连接算法是把两个簇之间元素的平均距离当做两个簇之间的距离.根据这个定义,我们分别用公式(11)(12)定义簇之间的距离.平均连接算法是对单连接算法和全连接算法的一个折中.
公式(11)(12)中,ni,nj以及nij分别表示簇i,j以及ij中的对象个数.
综上所述,本发明一种基于非对称距离下的层次聚类方法,该方法具体步骤如下:在web数据挖掘中,设有四个对象进行聚类,这四个对象分别是:student,teacher,education,book。设定这四个对象之间的一个4×4的距离矩阵,命名为A1,如下:
步骤一:选择第一个选择因子,即绝对值最大,挑选出第二个对象和第三个对象,即teacher和education。
步骤二:将teacher和education合并为同一簇,记为簇1.并采用单连接算法更新距离矩阵,得到更新后的距离矩阵A2如下:
步骤三:重复第一步的工作,选择第一个选择因子,挑选出A2中的第一个对象和簇1,即student和(teacher,education).
步骤四:将student与(teacher,education)合并为同一簇,即(student(teacher,education)),记为簇2.并采用单连接算法更新距离矩阵,得到更新后的距离矩阵A3如下:
步骤五:将剩下的这两个簇进行合并,最终将所有的对象合并为同一个簇,记为簇3,即(book(student(teacher,education)))
合并的过程图如下:
本发明的有益效果:出本发明所提供的非对称算法在各个连接因子的情况下都优于对称算法.其中单连接算法的聚类效果最好,全连接算法的聚类效果其次,平均连接算法的聚类效果相对较差.非对称层次聚类算法不仅可以有效用于Web数据聚类中,提高基于海量web信息的数据挖掘效率,还能广泛的应用于交通数据分析,生物医学数据挖掘等领域,由于这些领域的问题不同,数据特征也不完全相同,所以如何针对实际制定相应的选择因子或者新的合并算法都需要进一步展开深入研究.
具体实施方式
见图7,本发明一种基于非对称距离下的层次聚类方法,在web数据挖掘中,有四个对象进行聚类,这四个对象分别是:student,teacher,education,book。设定这四个对象之间的一个4×4的距离矩阵,命名为A1,如下:
第一步:选择第一个选择因子,即绝对值最大,挑选出第二个对象和第三个对象,即teacher和education。
第二步:将teacher和education合并为同一簇,记为簇1.并采用单连接算法更新距离矩阵,得到更新后的距离矩阵A2如下:
第三步:重复第一步的工作,选择第一个选择因子,挑选出A2中的第一个对象和簇1,即student和(teacher,education).
第四步:将student与(teacher,education)合并为同一簇,即(student(teacher,education)),记为簇2.并采用单连接算法更新距离矩阵,得到更新后的距离矩阵A3如下:
第五步:将剩下的这两个簇进行合并,最终将所有的对象合并为同一个簇,记为簇3,即(book(student(teacher,education)))
合并的过程图如下:
采用社会化书签(Social Bookmarking)系统中的标签(tag)作为数据集.社会化书签系统(如Delicious、CiteULike、Flickr、diggo等)是Web2.0的标志性应用之一.社会化书签系统是一种新型信息组织方法,它带来了全新的信息交流与资源分享方式,是一种自由而有效的网络信息组织方法.利用社会化书签系统上的书签附加的标签可以实现对书签的分众分类(Folksonomy),为传统的网络信息分类和传播方法带来了新的理念,体现了互联网所推崇的共享与协作精神,开创了互联网信息传播的新阶段.对标签进行聚类可以探索社会化书签系统的信息结构与热点标签之间的关系.
我们采用的实验数据来自于delicious(http://www.delicious.com/)与diggo(http://www.diigo.com/)上的热门标签.本文分别抽取了两个数据集:329个标签的delicious数据集和600个标签的diggo数据集.试验中采用平均值最小选择因子,分别采用前面所述的三种连接算法进行聚类,此外我们还采用了对称距离进行聚类,作为比较型试验.本文的试验均在同一平台之下进行,我们采用C语言与R(Http://www.r-project.org)实现了非对称层次聚类算法.
我们利用标签的共现关系分析标签之间的关系,设标签i和标签j的共现次数为cij,标签i和标签j出现的次数分别是ci和cj,那么非对称距离dij和dji可以采用如下定义:
而对称距离可以采用如下定义:
首先分析非对称层次聚类算法的精度.对聚类结果进行切割,分别计算每个类的精度和召回率,得到召回率-精度曲线如图1至图6所示.
图1-图3分别表示delicious数据集下的三种连接算法表现,从图上可以看出非对称层次聚类算法在取得较好的精度的同时还保持了较高的召回率.
图4-图6分别表示Diggo数据集下的三种连接算法表现,从图上可以看出,相对于delicious数据集下的聚类结果,Diggo数据集下的精度和召回率相对较低,这是因为Diggo的热门标签中具有较少的关联性,没有很突出的标签耦合,所以聚类时带来了较大的困难,导致聚类精度较低.
从图1-图6,我们还可以看出,对于两个数据集而言,整体精准度都比较高,精准度优于召回率,召回率有进一步提升的空间。