在了解infobright时,其查询优化器的一个核心是使用粗糙集理论来做书数据节点的筛选,于是在网上查到一个广为流传的粗糙集应用实例,蛮有意思的
考虑一个数据库中的二维表如下:
元素 颜色 形状 大小 稳定性
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,从而能得到下面的决策规则:大三角->稳定,大方块->稳定,小圆->不稳定,中圆->不稳定,中方块->不稳定,利用粗集的理论还可以对这些规则进一步化简得到:大->稳定,圆->不稳定,中方块->不稳定。这就是上面这个数据表所包含的真正有用的知识,而这些知识都是从数据库有粗糙集方法自动学习得到的。因此,粗糙集是数据库中数据挖掘的有效方法。