郑州大学学报(理学版)  2018, Vol. 50 Issue (1): 27-32  DOI: 10.13705/j.issn.1671-6841.2017085

引用本文  

杨涛, 张贤勇, 冯山. 基于差别矩阵的属性集求核算法[J]. 郑州大学学报(理学版), 2018, 50(1): 27-32.
YANG Tao, ZHANG Xianyong, FENG Shan. A Core Algorithm of Attribute Sets Based on the Discernibility Matrix[J]. Journal of Zhengzhou University(Natural Science Edition), 2018, 50(1): 27-32.

基金项目

国家自然科学基金项目(61673285, 61203285);四川省青年科技基金项目(2017JQ0046);四川省教育厅科研项目(15ZB0029)

通信作者

张贤勇(1978—),男,四川宜宾人,副教授,主要从事粗糙集、粒计算和数据挖掘研究,E-mail:xianyongzh@sina.com

作者简介

杨涛(1990—),男,重庆垫江人,硕士研究生,主要从事粗糙集和数据挖掘研究,E-mail:913034977@qq.com

文章历史

收稿日期:2017-04-19
基于差别矩阵的属性集求核算法
杨涛1 , 张贤勇1,2 , 冯山1     
1. 四川师范大学 数学与软件科学学院 四川 成都 610066;
2. 四川师范大学 智能信息与量子信息研究所 四川 成都 610066
摘要:通过对差别矩阵的研究,提出一种压缩差别矩阵的构造方法及相关的属性集求核算法, 减少了差别矩阵中大量的空值存储,并且避免对象之间的盲目比较.算法的时间复杂度为max(O(|C||U1||U|2), O(|C′||U1|2)),空间复杂度为max(O(|C||U1||U2|), O(|U1|2)),提高了已有差别矩阵算法的求核效率.实例分析与实验结果均验证了构建算法的有效性.
关键词粗糙集    差别矩阵    属性集        
A Core Algorithm of Attribute Sets Based on the Discernibility Matrix
YANG Tao1 , ZHANG Xianyong1,2 , FENG Shan1     
1. College of Mathematics and Software Science, Sichuan Normal University, Chengdu 610066, China;
2. Institute of Intelligent Information and Quantum Information, Sichuan Normal University, Chengdu 610066, China
Abstract: Through the study of the discernibility matix, a constructional method of the compression discernibility matrix and the core algorithm of attribute sets were proposed. This algorithm reduced the large amount of empty values which were stored in the discernibility matrix, and avoided the blind comparison between objects. The time complexity was max(O(|C||U1||U|2), O(|C′||U1|2)), while the space complexity was max(O(|C||U1||U2|), O(|U1|2)). The new algorithm promoted the core calculation efficiency of existing algorithms based on the discernibility matrix. Both the example analyses and experiment results verified the effectiveness of the constructional algorithm.
Key words: rough set    discernibility matrix    attribute set    core    
0 引言

属性约简是粗糙集理论的重要研究内容之一.目前许多属性约简的方法是基于核属性的,因此,求核是这些方法的基础.常见的核属性求解方法有:基于正区域的方法[1]、基于信息熵的方法[2-3]和基于差别矩阵的方法[4-7].然而,基于核定义求核过程比较烦琐.文献[4]给出一种较简单的基于差别矩阵的求核方法,其时间与空间复杂度均为O(|C||U|2);文献[5]通过实例揭示文献[4]方法应用于不相容决策表信息系统时,存在所求核与正域核不一致的不足,同时给出差别矩阵新定义及求核方法;但是该方法的时间与空间复杂度与文献[4]相同,故求核效率并没有得到改善.为了提高求核效率,文献[6]给出一种改进差别矩阵的定义及求核算法,求核效率比文献[4-5]有所提高,其时间复杂度为max(O(|C||U|lg|U|), O(|C||U1||U|)),空间复杂度为O(|C||U1||U|).文献[7]在文献[6]的基础上,对差别矩阵求核算法做了进一步改进,首先将决策表中重复数据进行合并,然后利用差别矩阵的定义进行求核计算,其时间复杂度为max(O(|C||U|), O(|C||U′/C||U1|)),空间复杂度为O(|C||U′/C||U1|).若决策表数据中不存在重复数据,则文献[6-7]所涉及的时间和空间复杂度是等同的.

通过对差别矩阵的研究,本文提出一种压缩差别矩阵的构造方法及相关的属性集求核算法.所提算法能够有效减少差别矩阵中大量的空值存储,并且避开对象之间的盲目比较,由此设计的求核算法的时间复杂度为max(O(|C||U1||U2|), O(|C′||U1|2)),空间复杂度为max(O(|C||U1||U2|), O(|U1|2)),提高了属性核求解效率.

1 基本概念

决策表信息系统S=(U, C, D, V, F),U={x1, x2, …, xn}为非空有限论域,C={c1, c2, …, cm}为条件属性集,D为决策属性集且CD=∅,V=∪bCDVb,其中Vb表示属性b的值域.信息函数F:U×(CD)→V为对象赋属性值,即∀bCDxU,有F(x, b)∈Vb.令RCDR≠∅,则ind(R)={(xi, xj)|F(xi, b)=F(xj, b), ∀bR}称为S的不可区分等价关系,其含x的等价类记为[x]RU/R表示等价关系ind(R)确定的等价类集.设bR,若ind(R)=ind(R-{b}),则称bR中不必要的,否则,称bR中必要的.设P, QCDQP正域为POSP(Q)=∪XU/QP(X),其中P(X)={xU[x]PX}.

定义1[4]   决策表信息系统S=(U, C, D, V, F)中,bC,如果POSC(D)=POSC-{b}(D),则称bC中相对D不必要的;否则,称bC中相对D必要的.C中所有必要属性的集合称为C相对D的核,记为coreC(D).

定义2(不相容决策表的差别矩阵)[6]  决策信息系统S=(U, C, D, V, F)中,令U/D={y1, y2, …, yv},相容子论域${{U}_{1}}=\cup _{i=1}^{h}\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{C}({{y}_{i}})\left( h\le v \right)$,不相容子论域U2=U-U1.差别矩阵IDM=(mij)的元素确定如下:

$ {{m}_{ij}}=\left\{ \begin{align} &\{b\in C|F({{x}_{i}}, b)\ne F({{x}_{j}}, b)\}, \forall {{x}_{i}}, {{x}_{j}}\in {{U}_{1}}, d\in D, F({{x}_{i}}, d)\ne F({{x}_{j}}, d); \\ &\{b\in C|F({{x}_{i}}, b)\ne F({{x}_{j}}, b)\}, \forall {{x}_{i}}\in {{U}_{1}}, {{x}_{j}}\in {{U}_{2}}; \\ &\varnothing, 其他 \\ \end{align} \right. $

命题1   $cor{e_C}\left( D \right) = \{ \alpha \left( {\alpha \in C} \right) \wedge (\exists {m_{ij}}(({m_{ij}} \in \mathit{\boldsymbol{IDM}}) \wedge ({m_{ij}} = \left\{ \alpha \right\}) \wedge {m_{ij}} = 1))\} .$

定义2表明,差别矩阵算法求不相容决策表信息系统中核属性时,首先将论域U中所有对象分为完全相容子论域U1与完全不相容子论域U2,其次将U1中对象两两比较,并将U1中的对象与U2中的对象两两比较,最后根据命题1从差别矩阵中找出简单属性(单个属性).

2 基于差别矩阵的属性集求核算法 2.1 差别矩阵的空值

根据定义2可知,差别矩阵求解核属性时会出现空值,这些空值元素的出现会占用大量存储空间,使得求核属性浪费了大量计算时间.因此,提出一种压缩差别矩阵的构造方法.

定理1(空值优化)  在决策表信息系统S=(U, C, D, V, F)中,记相容子论域U1={x1, x2, …, xk}.当xi, xjU1F(xi, D)=F(xj, D)时,则忽略对象xixj的比较运算.

证明  因∀xi, xjU1(1≤ijk),所以信息系统S中,∀bC存在如下关系:① F(xi, b)=F(xj, b); ② F(xi, b)≠F(xj, b).由定义2知,当∀xi, xjU1, F(xi, d)≠F(xj, d)时,mij={bC|F(xi, b)≠F(xj, b)},否则,mij=∅.因此,差别矩阵中的空值与条件属性值的取值无关;显然,当∀xi, xjU1F(xi, D)=F(xj, D)时,忽略对象xixj的比较运算.

算法1  空值优化执行过程.

输入:决策表S=(U, C, D, V, F);输出:可以忽略比较的对象.

步骤1  得到完全相容子论域U1与完全不相容子论域U2, 记U1={x1, x2, …, x|U1|};

步骤2   L=∅;//L用于收集U1中可以忽略比较的对象;

步骤3   for(i=1;i < |U1|; i++)

          for(j=2;j≤|U1|; j++)

               if(F(xi, D)=F(xj, D))

                   L=L∪{xi, xj};

步骤4  输出L.

算法1以决策表信息系统中的决策属性值D为划分依据,将论域U划分成相容子论域U1与不相容子论域U2,然后对U1中的对象按照决策属性值的不同划分成多个对象集,进而减少当决策属性值相同时的不必要计算,同时也压缩了差别矩阵中空值元素.一般情形下,算法1的时间复杂度为O(|U1|2).在实际应用中,上述算法虽然有2个循环,但是内循环在循环过程中,当对象xixj可以忽略比较,对象xixk(kj)可以忽略比较时,由传递性可得对象xjxk可以忽略比较.因此, 算法在执行过程中减少了内循环次数,即算法1的时间复杂度为O(|U1|).

2.2 差别矩阵的属性集求核机理

在决策表信息系统S中,若∀bC, xi, xjU1F(xi, b)=F(xj, b)∧F(xi, D)=F(xj, D)成立,或∀bC, xi, xjU2F(xi, b)=F(xj, b)∧F(xi, D)≠F(xj, D)成立,则利用差别矩阵算法求得的属性集相同,这不但占用大量存储空间,而且也浪费了大量计算时间.

定义3(决策表化简)   在决策表信息系统S=(U, C, D, V, F)中,定义新决策表S′=(U′, C, D, V′, F′).信息函数F′满足:F′(xi, C)=F(xi, C),dD

$ F\prime ({{x}_{i}}, d)=\left\{ \begin{align} &DU+1, \forall {{x}_{i}}\in {{U}_{2}}, \exists {{x}_{j}}\in {{U}_{2}}, F({{x}_{i}}, C)=F({{x}_{j}}, C)\wedge F({{x}_{i}}, d)\ne F({{x}_{j}}, d)时, \\ &将对象{{x}_{i}}, {{x}_{j}}进行合并, DU为累计合并次数; \\ &F({{x}_{i}}, d), \forall {{x}_{i}}\in {{U}_{1}}, \exists {{x}_{j}}\in {{U}_{1}}, F({{x}_{i}}, C)=F({{x}_{j}}, C)\wedge F({{x}_{i}}, d)=F({{x}_{j}}, d)时, \\ &将{{x}_{j}}从S中删除, 取{{x}_{i}}中决策属性值; \\ &F({{x}_{i}}, d), 其他. \\ \end{align} \right. $

进而,F′自然确定U′与V′.

根据定义2可知,当∀xiU1, xjU2时,mij≠∅.当ƎxkU2F(xk, C)=F(xj, C)∧F(xi, d)≠F(xj, d)成立,则mij=mik.又因xj, xkU2,根据定义2可知mjk=∅.故在利用差别矩阵求解核属性时,当∀xj, xkU2时,将U2中具有“相同条件属性值但不同决策属性值”的对象进行合并不影响核属性的求解结果.在决策表S′中,∀xi, xjU′,bC,均有|mij| < C.基于定理1与定义3,下面分析差别矩阵的属性集求核机理.

定理2  当mikmjk∧|mjk|-|mik|=1∧{(xi, xj)|F(xi, b)≠F(xj, b)}=∅, ∀bmik时,mij=mjk-mik∧|mij|=1.

根据定理2可知,当mikmjk=∅时,显然mij={mikmjk}∧|mij|≥2.定理2揭示了核属性集的关系,即在对象xixj比较之前,先判定属性集mikmjk是否满足数量之差为1.若为1,则判定mikmjk是否成立.因mikmjk中的属性集合是有序的,因此判断mikmjk时,其时间复杂度为max(O(|mjk|)).

定义4(改进差别矩阵)  决策表信息系统S′=(U′, C, D, V′, F′)中,令U′/D={y1, y1, …, yv},相容子论域${{{{U}'}}_{1}}=\cup _{i=1}^{h}\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{C}({{{{y}'}}_{i}})\left( h\le v \right)$,不相容子论域U2=U′-U1.改进差别矩阵SIDM=(mij)的元素确定如下:

$ {{{{m}'}}_{ij}}=\left\{ \begin{align} &\{b\in C|F\prime ({{x}_{i}}, b)\ne F\prime ({{x}_{j}}, b)\}\forall {{x}_{i}}\in {{{{U}'}}_{1}}, {{x}_{j}}\in {{{{U}'}}_{2}}; \\ &—, 当\forall {{x}_{i}}, {{x}_{j}}\in {{{{U}'}}_{1}}, F\prime ({{x}_{i}}, D)=F\prime ({{x}_{j}}, D); \\ &\varnothing, 其他. \\ \end{align} \right. $

其中:“—”表示无需考虑比较的对象.

基于定义4求不相容决策表信息系统中核属性时,只需要将U1U2中对象两两比较,并利用定理2属性集求核机理求解核属性.进而,根据命题1从差别矩阵中找出单个属性.

2.3 属性集求核算法描述

假设论域U′中前|U1|个为完全相容子表,U2=U′-U1为论域U′中完全不相容子表.采用分布计数的基数排序思想求解等价类[7],即求解U′/C时的时间复杂度为O(|C||U′|).获得U1U2的时间复杂度为O(|U′/C||U′/D|),其中U′/C表示按照条件属性集C划分后等价类的数目,U′/D表示按照决策属性集D划分后等价类的数目.上述过程与文献[6-7]中求相容子表与不相容子表的过程是一致的,即上述过程中算法的时间复杂度为O(|C||U′|)+O(|U′/C||U′/D|).

算法2  基于差别矩阵的属性集求核算法.

输入:决策表信息系统S=(U, C, D, V, F);输出:决策表信息系统的核coreC(D).

步骤1   执行算法1;

步骤2  根据定义3创建新的决策表S′;

步骤3   coreC(D)=∅, core1C(D)=∅, core2C(D)=∅;

步骤4   for(i=1;i≤|U′1|; i++)

          for(j=|U′1|+1;j≤|U′|; j++)

              m′ji=∅;M=∅;//用于存储属性集m|U′1|+1, i

              for(r=1;r≤|C|; r++)

                if(F(xi, cr)≠F(xj, cr))

                  m′ji=m′ji∪{cr};

                  M=M∪m|U′1|+1, i;

                  if(|m′ji|=1)

                    core1C(D)=core1C(D)∪m′ji;

步骤5   m′ji=∅;M=M∪m|U′1|+1, i;

步骤6   for(i=1;i≤|U′1|-1;i++)

        for(j=i+1;j≤|U′1|; j++)

            if (|m|U′1|+1, i|-|m|U′1|+1, j|=1)

                执行定理2;

                m′ji=m|U′1|+1, i-m|U′1|+1, j;

                if (|m′ji|=1)

                core2C(D)=core2C(D)∪{m′ji};

步骤7   coreC(D)=core1C(D)∪core2C(D);

步骤8   输出coreC(D).

在算法2中,步骤1时间复杂度为O(|U1|);步骤2时间复杂度为O(|U2|);步骤4时间复杂度为O(|C||U1||U2|);步骤6时间复杂度为O(|C′|)=O(max(m|U1|+1, i)) < O(|C|).因此,算法2的总时间复杂度为max(O(|C||U1||U|2), O(CU12)),空间复杂度则为max(O(|C||U1||U2||), O(|U1|2)).在利用差别矩阵求核过程中,以往的算法需要将每个对象两两进行比较求解核属性.然而,随着对象数目的增多,其算法复杂度在逐渐增大,求取的时间也会越来越长.而且在决策表信息系统中,两个对象之间可能具有相同的条件属性值和大量空值.算法2基于差别矩阵来实施属性集求核思想,用完全相容子表与完全不相容子表之间进行比较,然后利用定理2求得所有的核属性值.

通过比较可知,本文算法的时间和空间复杂度均低于文献[6]和文献[7]所提算法的时间和空间复杂度.

3 实例分析

利用一个决策表实例(表 1)来说明本文的求核算法,差别矩阵元素均采用简单形式.其中c1c2c3为条件属性,D={d}为决策属性集,共有8个样本对象.根据定义3可知,F′(x3, d)=3.化简后的决策表S′如表 2所示.其中U1={x1, x6, x7, x8},U2={x3}.根据定理1知,在表 2中,对象x1x6x8是不需要做比较运算的.

表 1 决策表S Table 1 Decision table S

表 2 化简后的决策表S Table 2 Simplified decision table S

表 2基础上,根据定义4方法构建差别矩阵SIDM, 如表 3所示.分析差别矩阵SIDM可知coreC(D)={c1, c2}.

表 3 差别矩阵SIDM Table 3 Discernibility matrix SIDM

如果采用文献[6]方法创建差别矩阵IDM为5×8规模, 如表 4所示,共有40个元素;如果采用文献[7]方法创建差别矩阵IDM′为4×5规模,如表 5所示, 共有20个元素.采用本文方法创建的差别矩阵SIDM为2×4规模,实际存储的元素为7个.可见采用本文方法既减少了样本对象的个数,又降低了差别矩阵的空间占用,从而减少了数据的处理量,提高了求核效率.事实上,基于表 1表 2,“表 4表 5表 3”的改变过程清楚地体现了“文献[6]→文献[7]→本文”3种算法的差别矩阵改进过程.

表 4 差别矩阵IDM Table 4 Discernibility matrix IDM

表 5 差别矩阵IDM Table 5 Discernibility matrix IDM
4 实验结果

采用文献[7]中使用的UCI数据集(http://archive.ics.uci.edu/ml/datasets.html),在Intel(R) Core(TM) i5-2400 CPU @ 3.10 GHz、RAM 2 GB环境下,对文献[6]、文献[7]与本文算法进行了比较.UCI数据集及其特征如表 6所示,其中|U/C|表示按照条件属性集C划分后等价类的数目;|IDM|、|IDM′|、|SIDM|分别表示文献[6]、文献[7]以及本文算法差别矩阵实际存储元素的个数.可以看出,本文算法创建的简化差别矩阵中所存储的元素数目|SIDM|要少于文献[6]和文献[7]差别矩阵中存储的元素个数.

表 6 UCI数据集及其特征 Table 6 UCI data sets and their features

图 1图 2分别给出3种算法在4种UCI数据集上执行时间与执行空间的比较.基于图 1,本文求核算法的执行效率要优于文献[6]和文献[7]的求核算法,并且随着样本对象的增加,该算法效率更加明显.基于图 2,对于不相容决策表(如Patient与Car)和包含重复元素比较多的决策表(如Cancer),本文求核算法在执行过程中对存储空间的需求小于文献[6]和文献[7].

图 1 3种算法执行时间比较 Figure 1 Comparison on execution time of 3 algorithms

图 2 3种算法执行空间比较 Figure 2 Comparison on execution space of 3 algorithms
5 结束语

文献[4]的求核算法不能处理不相容决策表,存在一定的局限性.文献[5]提出了改进算法,并解决了文献[4]算法不能处理不相容决策表的问题,但该算法的时空效率并不太理想.文献[7]则在文献[6]的基础上,对决策表中相同对象合并来提高求核效率.研究发现,利用差别矩阵求解核属性的算法效率还能得到进一步的提高.因此,本文提出了一种基于差别矩阵的属性集求核算法.该算法首先将决策表划分成相容与不相容部分;其次运用定理1找到可以忽略比较的对象,运用定义3化简决策表.算法2给出了基于差别矩阵的属性集求核算法伪码,由此设计的算法的时间与空间复杂度均低于文献[6]和文献[7]的时间与空间复杂度,实验结果表明该算法是有效的.

参考文献
[1]
ZHANG C S, RUAN J, TAN Y H. An improved incremental updating algorithm for core based on positive region[J]. Journal of computational information systems, 2011, 7(9): 3127-3133. (0)
[2]
钱文彬, 杨炳儒, 徐章艳, 等. 基于信息熵的核属性增量式高效更新算法[J]. 模式识别与人工智能, 2013, 26(1): 42-49. (0)
[3]
李少年, 吴良刚. 基于邻域信息熵度量数值属性快速约简算法[J]. 计算机工程与科学, 2016, 38(2): 350-355. (0)
[4]
HU X, CERCONE N. Learning in relational databases: a rough set approach[J]. Computational intelligence, 2010, 11(2): 323-338. (0)
[5]
叶东毅, 陈昭炯. 一个新的差别矩阵及其求核方法[J]. 电子学报, 2002, 30(7): 1086-1088. (0)
[6]
杨明, 孙志挥. 改进的差别矩阵及其求核方法[J]. 复旦学报(自然科学版), 2004, 43(5): 865-868. (0)
[7]
杨传健, 姚光顺, 马丽生. 改进的差别矩阵及其快速求核算法[J]. 计算机工程与科学, 2010, 32(3): 78-81. (0)