粗糙集理论介绍
面对日益增长的数据库,人们将如何从这些浩瀚的数据中找出有用的知识?我们如何将所学到的知识去粗取精?什么是对事物的粗线条描述什么是细线条描述?
粗糙集合论回答了上面的这些问题。要想了解粗糙集合论的思想,我们先要了解一下什么叫做知识?假设有8个积木构成了一个集合A,我们记:A={x1,x2,x3,x4,x5,x6,x7,x8},每个积木块都有颜色属性,按照颜色的不同,我们能够把这堆积木分成R1={红,黄,兰}三个大类,那么所有红颜色的积木构成集合X1={x1,x2,x6},黄颜色的积木构成集合X2={x3,x4},兰颜色的积木是:X3={x5,x7,x8}。按照颜色这个属性我们就把积木集合A进行了一个划分(所谓A的划分就是指对于A中的任意一个元素必然属于且仅属于一个分类),那么我们就说颜色属性就是一种知识。在这个例子中我们不难看到,一种对集合A的划分就对应着关于A中元素的一个知识,假如还有其他的属性,比如还有形状R2={三角,方块,圆形},大小R3={大,中,小},这样加上R1属性对A构成的划分分别为:
A/R1={X1,X2,X3}={{x1,x2,x6},{x3,x4},{x5,x7,x8}} (颜色分类)
A/R2={Y1,Y2,Y3}={{x1,x2},{x5,x8},{x3,x4,x6,x7}} (形状分类)
A/R3={Z1,Z2,Z3}={{x1,x2,x5},{x6,x8},{x3,x4,x7}} (大小分类)
上面这些所有的分类合在一起就形成了一个基本的知识库。那么这个基本知识库能表示什么概念呢?除了红的{x1,x2,x6}、大的{x1,x2,x5}、三角形的{x1,x2}这样的概念以外还可以表达例如大的且是三角形的{x1,x2,x5}∩{x1,x2}={x1,x2},大三角{x1,x2,x5}∩{x1,x2}={x1,x2},兰色的小的圆形({x5,x7,x8}∩{x3,x4,x7}∩{x3,x4,x6,x7}={x7},兰色的或者中的积木{x5,x7,x8}∪{x6,x8}={x5,x6,x7,x8}。而类似这样的概念可以通过求交运算得到,比如X1与Y1的交就表示红色的三角。所有的这些能够用交、并表示的概念以及加上上面的三个基本知识(A/R1,A/R2.A/R3)一起就构成了一个知识系统记为R=R1∩R2∩R3,它所决定的所有知识是A/R={{x1,x2},{x3},{x4},{x5},{x6},{x7},{x8}}以及A/R中集合的并。
下面考虑近似这个概念。假设给定了一个A上的子集合X={x2,x5,x7},那么用我们的知识库中的知识应该怎样描述它呢?红色的三角?****的大圆?都不是,无论是单属性知识还是由几个知识进行交、并运算合成的知识,都不能得到这个新的集合X,于是 我们只好用我们已有的知识去近似它。也就是在所有的现有知识里面找出跟他最像的两个一个作为下近似,一个作为上近似。于是我们选择了“兰色的大方块或者兰色的小圆形”这个概念:{x5,x7}作为X的下近似。选择“三角形或者兰色的”{x1,x2,x5,x7,x8}作为它的上近似,值得注意的是,下近似集是在那些所有的包含于X的知识库中的集合中求并得到的,而上近似则是将那些包含X的知识库中的集合求并得到的。一般的,我们可以用下面的图来表示上、下近似的概念。
这其中曲线围的区域是X的区域,蓝色的内部方框是内部参考消息,是下近似 ,绿的是边界加上蓝色的部分就是上近似集。其中各个小方块可以被看成是论域上的知识系统所构成的所有划分。
整个粗集理论的核心就是上面说的有关知识、集合的划分、近似集合等等概念。下面我们讨论一下关于粗糙集在数据库中数据挖掘的应用问题。考虑一个数据库中的二维表如下:
元素 颜色 形状 大小 稳定性
x1 红 三角 大 稳定
x2 红 三角 大 稳定
x3 黄 圆 小 不稳定
x4 黄 圆 小 不稳定
x5 兰 方块 大 稳定
x6 红 圆 中 不稳定
x7 兰 圆 小 不稳定
x8 兰 方块 中 不稳定
可以看出,这个表就是上面的那个例子的二维表格体现,而最后一列是我们的决策属性,也就是说评价什么样的积木稳定。这个表中的每一行表示了类似这样的信息:红色的大三角积木稳定,****的小圆形不稳定等等。我们可以把所有的记录看成是论域A={x1,x2,x3,x4,x5,x6,x7,x8},任意一个列表示一个属性构成了对论域的元素上的一个划分,在划分的每一个类中都具有相同的属性。而属性可以分成两大类,一类叫做条件属性:颜色、形状、大小都是,另一类叫做决策属性:最后一列的是否稳定?下面我们考虑,对于决策属性来说是否所有的条件属性都是有用的呢?考虑所有决策属性是“稳定”的集合{x1,x2,x5},它在知识系统A/R中的上下近似都是{x1,x2,x5}本身,“不稳定”的集合{x3,x4,x6,x7,x8},在知识系统A/R中的上下近似也都是{x3,x4,x6,x7,x8}它本身。说明该知识库能够对这个概念进行很好的描述。下面考虑是否所有的基本知识:颜色、形状、大小都是必要的?如果我们把这个集合在知识系统中去掉颜色这个基本知识,那么知识系统变成A/(R-R1)={{x1,x2},{x3,x4,x7},{x5},{x6},{x8}}以及这些子集的并集。如果用这个新的知识系统表达“稳定”概念得到上下近似仍旧都是:{x1,x2,x5},“不稳定”概念的上下近似也还是{x3,x4,x6,x7,x8},由此看出去掉颜色属性我们表达稳定性的知识不会有变化,所以说颜色属性是多余的可以删除。如果再考虑是否能去掉大小属性呢?这个时候知识系统就变为:
A/(R-R1-R3)=A/R2={{x1,x2},{x5,x8},{x3,x4,x6,x7}}。同样考虑“稳定”在知识系统A/R2中的上下近似分别为:{x1,x2}和{x1,x2,x5,x8},已经和原来知识系统中的上下近似不一样了,同样考虑“不稳定”的近似表示也变化了,所以删除属性“大小”是对知识表示有影响的故而不能去掉。同样的讨论对于“形状”属性也一样,它是不能去掉的。最后我们得到化简后的知识库R2,R3,从而能得到下面的决策规则:大三角->稳定,大方块->稳定,小圆->不稳定,中圆->不稳定,中方块->不稳定,利用粗集的理论还可以对这些规则进一步化简得到:大->稳定,圆->不稳定,中方块->不稳定。这就是上面这个数据表所包含的真正有用的知识,而这些知识都是从数据库有粗糙集方法自动学习得到的。因此,粗糙集是数据库中数据挖掘的有效方法。
从上面这个例子中我们不难看出,实际上我们只要把这个数据库输入进粗糙集运算系统,而不用提供任何先验的知识,粗糙集算法就能自动学习出知识来,这正是它能够广泛应用的根源所在。而在模糊集、可拓集等集合论中我们还要事先给定隶属函数。
目前,粗糙集理论已经广泛的应用于知识发现、数据挖掘、智能决策、电子控制等多个领域