数据矩阵中局部相似性子矩阵双向聚类检测方法

文档序号:6521266阅读:222来源:国知局
数据矩阵中局部相似性子矩阵双向聚类检测方法
【专利摘要】本发明涉及计算机【技术领域】中的数据智能信息处理,特别涉及数据矩阵中局部相似性子矩阵双向聚类检测方法及其实现,本发明有助于发掘数据矩阵中存在的重要知识和规律。本发明提出了一个新的双向聚类检测技术框架体系,设计实现了完整的基于聚类结果的局部相似性子矩阵检测流程。将传统聚类算法(如K-means,FCM等)与局部相似性子矩阵检测分离为两个独立的顺序处理过程,将局部相似性子矩阵的检测建立在传统聚类算法聚类的结果基础上。这样做的优点在于,可以使得随着对局部相似性子矩阵定义的发展而机动灵活地采用相应的传统聚类算法来完成前期的聚类工作,很好地将已有算法与新技术有机联系起来,知识体系的承接与连贯性得到实现。
【专利说明】数据矩阵中局部相似性子矩阵双向聚类检测方法
【技术领域】
[0001]本发明涉及计算机【技术领域】中的数据智能信息处理,特别涉及数据矩阵中局部相似性子矩阵双向聚类检测方法及其实现,本发明有助于发掘数据矩阵中存在的重要知识和规律。
【背景技术】
[0002]传统的聚类或者分类算法都是以数据矩阵中的行向量或者列向量整体作为分析对象称之为特征向量。向量中的元素又称之为特征,它对于一般的变形和失真保持不变或几乎不变,并且只含尽可能少的冗余信息。在决策理论中,特征提取占有重要的地位,它通过分析具体识别对象来决定选取哪些特征,特征提取过程不仅压缩了信息量,而且易于分类。特征提取之后通过引入某种相似性度量准则即判别函数来计算出相应于各类别的判别函数值,通过判别函数值进行特征分类,即从特征空间映射到决策空间。对于普通的模式识别问题而言,它是抛开具体的特征涵义而只是就向量本身来解决某种尺度下的相似性问题的。而对于局部相似性子矩阵的检测问题而言,位于同一个局部相似性子矩阵中的所谓特征向量并不是显式存在的,特征向量与局部相似性子矩阵矩阵在某种意义上是鸡与蛋谁先有的悖论。所以对于这个问题首先要解决的是特征向量问题,也就是说什么位置的什么样的元素组合在一起可以在原始的数据矩阵中形成有意义的局部相似性子矩阵。
[0003]所谓的双向聚类技术是指给定一个数据矩阵,检测其中由某些行和某些列构成的子矩阵,这些子矩阵的行向量或者列向量满足某种函数约束关系,这样的子矩阵称之为局部相似性子矩阵。由于每一个局部相似性子矩阵B都是由原始数据矩阵D中位于某些行和某些列的元素所组成的,所以B可以通过记录这些元素所在的行号集合R和列号集合C来表征。局部相似性子矩阵B所包含的行号数目和列号数目均需满足大于等于2,亦即最小尺寸的局部相似性子矩阵需要包含4个元素。这些局部相似性子矩阵揭示了原始数据矩阵中蕴涵的重要知识和规律,如对某一人群进行某项心理测试,将每个人的测试结果作为数据矩阵的一行可以得到针对于该人群的心理测试原始数据矩阵,该矩阵中存在的每一个局部相似性子矩阵即意味着某些人对某些问题给出了相同或者相近的选择,从而他们有着相同或者相近的心理行为反应,这对于总体把握该人群的心理特征是非常重要的。
[0004]给定任意一个大尺寸的数据矩阵,检测其中可能存在的局部相似性子矩阵是困难的。这是因为位于同一个局部相似性子矩阵内的元素由于受到相同函数关系的约束呈现出很强的相关性,可是这些元素与数据矩阵中的其它元素混杂在一起,从而会受到其他非相关元素的影响。数据矩阵采集生成过程中往往会存在噪声干扰,噪声的存在一方面会减弱局部相似性子矩阵内元素的相关性,另一方面也会增加局部相似性子矩阵内元素与数据矩阵中其它元素的区分难度。如果直接应用传统的聚类或者分类算法来进行大尺寸数据矩阵的局部相似性子矩阵检测时就会出现严重的问题,那些被分到不同类中的向量实际上是可能存在着局部的相似性关系的,也是就是说相关元素与不相关元素相互纠缠在一起使得问题变得非常复杂。[0005]现有技术的缺点在于:(I)所能检测的局部相似性子矩阵类型有限;(2)不能检测输出原始数据矩阵中存在的所有局部相似性子矩阵,由于对于任意给定的数据矩阵其中可能存在的局部相似性子矩阵数量、尺寸和位置关系都是未知的,算法是否能够检测输出其中存在的所有局部相似性子矩阵是一件非常具有挑战性的工作;(3)在检测具有重叠情形的局部相似性子矩阵时面临困难;很多现有已发表论文的工作都是将局部相似性子矩阵检测转化为一个目标函数的优化求解问题,这些方法无法解决的一个问题就是,当从原始数据矩阵中检测到某个局部相似性子矩阵之后,如何处理原始数据矩阵中被该局部相似性子矩阵所覆盖位置处元素的值。若采用重新赋值则必然会对具有重叠情形的局部相似性子矩阵检测产生严重影响,甚至导致无法继续检测。现有的局部相似性子矩阵检测技术无法处理复合类型的数据,而在实际情况中,很多数据库中的数据都是复合型的,这就使得这些技术的应用范围受到限制。

【发明内容】

[0006]本发明既可以应用于文本型数据矩阵也可以应用于数值类型的数据矩阵。本发明的检测过程没有对任何数据进行修改,而是基于聚类结果来一层一层检测输出,所以新算法从本质上适用于重叠情形的局部相似性子矩阵检测。本发明整个检测过程完全自动化,不需要人为的去选择或设置某些参数,从而大大减小技术使用者的劳动强度,可以使得使用者只需关注检测结果的分析即可。检测结果直观易读。数据经过处理以后,如果能够检测到局部相似性子矩阵,由于局部相似性子矩阵是直接由数据矩阵中某些满足某种约束关系的元素构成的,所以它具有非常好的结果可读性。
[0007]本发明的思想是对由原始数据矩阵生成的子矩阵进行聚类,然后对聚类结果利用局部相似性子矩阵内数据固有的约束关系来实现进一步处理,这种约束关系使得每一个局部相似性子矩阵都可以与一个完全图对应起来。该算法的特点是:算法结构清晰,主要由聚类和倒向搜索检测两部分组成。
[0008]本发明的局部相似性子矩阵检测过程如下:首先将原始数据矩阵Dmxn根据列号的所有2-组合产生η (η-1)/2个子矩阵,由于所有这些子矩阵的列号数目均为2,从而每个子矩阵的行向量均可以看作一个传统聚类算法中的特征向量,并且是低维空间R2中的特征向量,对这些子矩阵的行向量共计mn(n-l)/2个特征向量可以进行基于传统聚类算法如K均值的聚类处理,每个类赋予一个正整数表示的类标号。表Ti;i = 1,2,...,η-l与原始数据矩阵D有相同的尺寸,表示由矩阵D的列号2-组合{{i,i+l},{i,i+2},...,{i,n}}所导出的子矩阵聚类结果,Ti的元素即表示该位置处的行向量聚类以后被赋予的类标号。
[0009]本发明给出了一种倒向局部相似性子矩阵搜索算法。当得到表Ti, i = 1,2,3,...,η-l之后,问题在于如何将η-l个表中呈现出有规律现象的元素找出来,这些元素即是局部相似性子矩阵的组成。对于这个问题可以采用倒向搜索的方法进行,将η-l个表格倒序排列起来,首先搜索Tn_1; Tn_2,...,T1寻找所有包含最大列号为η的局部相似性子矩阵,一经搜索结束,后续搜索过程将不再检测包含最大列号为η的局部相似性子矩阵,然后搜索Τη_2,Tn_3,...,T1寻找所有包含最大列号为η-l的局部相似性子矩阵,重复这一过程直到T1为止,此时搜索产生的局部相似性子矩阵最大列号为2。这一搜索过程能够确保检测到所有可能存在的局部相似性子矩阵,即使它们彼此之间尺寸大小各异,检测结果按照这些局部相似性子矩阵所包含的最大列号值先后输出。在这一过程中要注意的是如何避免重复搜索,例如如何避免出现检测输出的最大列号为η-l的局部相似性子矩阵包含于最大列号为η的局部相似性子矩阵中这样的情形。
【专利附图】

【附图说明】
[0010]图1为本发明的数据矩阵局部相似性子矩阵双向聚类检测方法框架图
[0011]图2为本发明的记录聚类结果的表格生成过程以及局部相似性子矩阵倒向搜索过程
【具体实施方式】
[0012]本发明提出了一个新的双向聚类检测技术框架体系,设计实现了完整的基于聚类结果的局部相似性子矩阵检测流程,将传统聚类算法(如K-means,FCM等)与局部相似性子矩阵检测分离为两个独立的顺序处理过程如附图1所示,将局部相似性子矩阵的检测建立在传统聚类算法聚类的结果基础上。以下结合附图2详细叙述本发明的具体检测步骤:
[0013](I)原始数据矩阵的预处理:设原始数据矩阵D由m行η列组成,如附图2所示,首先判断行号数目m与列号数目η的大小,如果η > m则将数据矩阵D进行转置,从而得到一个新的由η行m列组成的数据矩阵D'由于在D中的局部相似性子矩阵在Dt中仍然是局部相似性子矩阵,所以转置处理对检测结果并不产生影响,只是由于本发明中用于记录聚类结果的表格总数目为数据矩阵的列号数目减一,对原始数据进行预处理之后可以减少所生成的表格数目,进而可以减少在后续处理中的检测步数。
[0014](2)子矩阵的生成:设原始数据矩阵D经过预处理之后的尺寸为m行η列,D的列号集合为{1,2,...,η}。这η个数的所有2-组合为{{1,2},{1,3},...,{η-1, η}}共计η (η-1) /2个,由这些2-组合中的元素作为列号可以对D截取生成η (η-1) /2个子矩阵,每个子矩阵的尺寸都是m行2列。
[0015](3)记录聚类结果的表格生成:由于在步骤2中生成的所有子矩阵每一个都是m行2列,所以每个子矩阵的行向量均为二维向量,这些行向量每一个都可以看作一个二维特征向量从而可以使用传统的聚类算法来进行聚类处理。这样特征向量的总数目为mn(n-l)/2。表Ti, i = 1,2,...,η-l与原始数据矩阵D有相同的尺寸,每一个表其实都是一个矩阵,表示由2-组合{{i,i+Ι},U,i+2},...,U,η}}所导出的子矩阵经过聚类后的结果,Ti的元素即表示该位置处的行向量聚类以后被赋予的类标号,类标号由整数I开始根据聚类结果进行递增。
[0016](4)倒向搜索算法:所谓的倒向搜索算法是指首先检测所有包含最大列号为η的局部相似性子矩阵,在这一搜索过程中需要用到的表格为τη_1; Tn_2,...,T1共计η-l个;然后检测所有包含最大列号为η-l的局部相似性子矩阵,在这一搜索过程中需要用到的表格为Tn_2,...,T1共计η-2个;最后检测所有包含最大列号为2的局部相似性子矩阵,在这一搜索过程中需要用到的表格为T1共计I个。在算法检测过程中必须在每次增加新表时进行局部相似性子矩阵包含关系检测。对于任意两个局部相似性子矩阵A和B,如果A所在的行号集合被B所在的行号集合包含,同时A所在的列号集合被B所在的列号集合包含,我们称之为A被B包含,为了避免局部相似性子矩阵的重复检测,对于满足包含关系的A和Β,Α被B所取代,也就是经过包含关系检测之后A消失,只剩下B。下面以检测最大列号为n的局部相似性子矩阵来进行算法说明。
[0017](4.1)首先使用表Tlri,检测表Tlri中所有具有相同类标号的元素,使用一个行号集合R记录这些元素所在的行号位置,同时使用一个列号集合C记录列号n-1和n,这是因为表Tlri中的元素表示原始数据矩阵D中第n-1列和第n列元素构成的特征向量的聚类结果。在这一过程中得到的所有局部相似性子矩阵都是尺寸待定的,有可能随着新表的加入而发生尺寸变化。
[0018](4.2)增加新表Tn_2,对在(4.1)中得到的每一个局部相似性子矩阵如B进行如下判断:使用B的行号集合R和列号集合C来对表Tn_2进行截取,判断经过截取后的Tn_2中第一列的元素值是否全部相等,如果全部相等紧接着判断第二列的元素值是否全部相等,持续这一过程一直到最后一列,如果经过截取后的Tn_2中的每一列元素值全部相等,那么意味着在增加新表Tn_2后B发生了增长。对于发生增长情形的B其行号集合R保持不变,而其列号集合C需要添加一个新的列号n-2。如果B没有发生增长,但是经过截取后的Tn_2中某些行所在的每一列元素值全部相等,则称B发生了分裂。发生分裂的待定局部相似性子矩阵B就由它本身得到了一系列新的局部相似性子矩阵B1A2,...,Bp这些Byi = 1,2,...,r与B的关系是每一个Bi的行号集合均包含于B的行号集合中,Bi的行号集合之间没有交集,但是每一个Bi的列号集合均比B的列号集合增加了一个新的列号元素n-2。如果经过截取后的Tn_2中每一列元素值彼此之间都不相等则称B保持不变,也就是说B并没有因为增加新表Tn_2而发生尺寸的变化。当完成对(4.1)中得到的所有局部相似性子矩阵的判断以后,紧接着要检测表Tn_2的最后一列所有具有相同类标号的元素,分别记录这些元素所在的行号位置,同时使用一个列号集合记录列号n-2和n,这是因为表Tn_2的最后一列中的元素表示原始数据矩阵D中第n-2列和第n列元素构成的特征向量的聚类结果。最后对在增加新表Tn_2之后得到的所有局部相似性子矩阵进行如(4)中所述的包含关系检测,去除发生包含关系的局部相似性 子矩阵。以上检测过程生成的所有局部相似性子矩阵即构成新的待定局部相似性子矩阵集合。
[0019](4.3)增加新表Tn_3,使用如(4.2)所述的方法对所有的待定局部相似性子矩阵进行检测,检测完成后再检测新表Tn_3中最后一列所有具有相同类标号的元素,分别记录这些元素所在的行号位置,同时使用一个列号集合记录列号n-3和n,这是因为表Tn_3的最后一列中的元素表示原始数据矩阵D中第n-3列和第n列元素构成的特征向量的聚类结果。最后对在增加新表Tn_3之后得到的所有局部相似性子矩阵进行如(4)中所述的包含关系检测,去除发生包含关系的局部相似性子矩阵。
[0020](4.4)重复上述过程一直到最后一个新表T1为止,此时算法检测得到所有包含最大列号为n的局部相似性子矩阵。
[0021](4.5)检测最大列号为n-1的局部相似性子矩阵时如⑷所述需要用到的表格为Tn_2,? ? ?,T1共计n-2个,检测过程与(4.1) (4.2) (4.3) (4.4)相似,检测完后需要对所有的待定局部相似性子矩阵进行包含性检测,持续上述过程一直到检测最大列号为2局部相似性子矩阵,此时需要用到的表格为T1共计I个。
[0022](5)算法检测结果输出:经过倒向搜索检测后得到的每一个局部相似性子矩阵都由一个行号集合和一个列号集合表不,这两个集合标不了存在于原始数据矩阵中满足局部相似性关系的元素的位置。算法的检测结果输出既可以输出所有经过包含关系检测以后的局部相似性子矩阵各自的行号集合和列号集合,也可以使用每一个局部相似性子矩阵的行号集合和列号集合来对原始数据矩阵进行截取得到相应的子矩阵,检测结果也可以以这些子矩阵的方式输出。
【权利要求】
1.数据矩阵中局部相似性子矩阵双向聚类检测方法,其特征在于将传统聚类算法(如K-means, FCM等)与局部相似性子矩阵检测分离为两个独立的顺序处理过程,传统的聚类算法成为新算法的一个可选参数,将局部相似性子矩阵的检测建立在传统聚类算法聚类的结果基础上。基于聚类结果的局部相似性子矩阵检测过程的独特性是使用了一系列的表来记录聚类的结果,从而使得局部相似性子矩阵的检测过程完全独立于原始数据。通过将局部相似性子矩阵的本质与表的关系紧密联系起来,提出了全新的倒向搜索检测算法,能够检测输出原始数据矩阵中所有可能存在的局部相似性子矩阵。
2.根据权利要求1所述的方法,其特征在于:首先对原始数据矩阵Dmxn,根据列号的2-组合生成总数为η (η-1) /2个子矩阵,这些子矩阵与原始数据矩阵有相同的行数目,但是列数目均为2。聚类算法是对这些子矩阵进行的,子矩阵的每个行向量均可以作为聚类算法处理的特征向量。
3.根据权利要求1所述的方法,其特征在于:使用原始数据矩阵列号数目减一个表格Ti,! = I,2,...,η-l来记录聚类结果。每一个表Ti与原始数据矩阵D有相同的尺寸,每一个表其实都是一个矩阵,表示由2-组合{{i,i+l},{i,i+2},...,U,η}}所导出的子矩阵经过聚类后的结果,Ti的元素即表示该位置处的行向量聚类以后被赋予的类标号。
4.根据权利要求1所述的方法,其特征在于:获取记录聚类结果的表格之后,新算法的双向聚类检测过程不再和原始数据矩阵的元素发生任何关系,所有的数据处理都是针对于记录聚类结果的表格进行的,在倒向搜索过程中,表格的使用数量和使用顺序由算法的描述确定。
5.根据权利要求1所述的方法,倒向搜索算法的特征在于:在检测生成局部相似性子矩阵的过程中是首先检测所有包含最大列号为η的局部相似性子矩阵,在这一搜索过程中需要用到的表格为Tn_1; Tn_2,...,T1共计η-l个;然后检测所有包含最大列号为η-l的局部相似性子矩阵,在这一搜索过程中需要用到的表格为Tn_2,...,T1共计η-2个;最后检测所有包含最大列号为2的局部相似性子矩阵,在这一搜索过程中需要用到的表格为T1共计I个。`
6.根据权利要求1所述的方法,其特征在于:每当有新的表格!\增加到检测过程中时,所有在此之前得到的待定局部相似性子矩阵的尺寸只会发生三种情形的变化,分别称之为增长、分裂和保持不变。发生增长的局部相似性子矩阵行号集合保持不变而列号集合增加一个列号i ;发生分裂的局部相似性子矩阵会产生多个新的局部相似性子矩阵,这些新的局部相似性子矩阵列号集合均增加了一个新的列号i ;保持不变的局部相似性子矩阵尺寸没有发生改变也不产生新的局部相似性子矩阵。
7.根据权利要求1所述的方法,其特征在于:设当前正在检测最大列号为r的局部相似性子矩阵,2 < r ( n,对所有在增加新表Ti, I < i < r之前存在的待定局部相似性子矩阵进行检测处理之后,必须紧接着分析新表Ti的第i+Ι列所有具有相同类标号的元素,分别记录这些元素所在的行号位置,同时使用一个列号集合记录列号i和r,这是因为表Ti的第i+Ι列中的元素表示原始数据矩阵D中第i列和第r列元素构成的特征向量的聚类结果。这一检测过程所生成的局部相似性子矩阵的特点是列号集合只包含两个元素i和r,即要检测的最大列号值和表自身的编号值。然后对所有的局部相似性子矩阵进行包含关系检测。
【文档编号】G06F17/30GK103617249SQ201310625930
【公开日】2014年3月5日 申请日期:2013年11月22日 优先权日:2013年11月22日
【发明者】张艳洁, 胡占义, 孙立民 申请人:烟台大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1