文章目录
粗糙集理论(Rough Set Theory)
简介
粗糙集理论作为一种数据分析处理理论,在1982年由波兰科学家Z.Pawlak创立。
A
R
R
1
=
{
X
1
,
X
2
,
X
3
}
=
{
{
×
1
,
x
2
,
x
6
}
,
{
x
3
,
x
4
}
,
{
×
5
,
x
7
,
x
8
}
}
(
颜色分类
)
A
/
R
2
=
{
Y
1
,
Y
2
,
Y
3
}
=
{
{
x
1
,
x
2
}
,
{
x
5
,
x
8
}
,
{
x
3
,
x
4
,
x
6
,
x
7
}
}
(
形状分类
)
A
/
R
3
=
{
Z
1
,
Z
2
,
Z
3
}
=
{
{
x
1
,
x
2
,
x
5
}
,
{
x
6
,
x
8
}
,
{
x
3
,
x
4
,
x
7
}
}
(
大小分类
)
R
1
=
{
红,黑,蓝
}
R
2
=
{
三角,方块,圆形
}
R
3
=
{
大,中,小
}
\mathrm{A} R \mathrm{R} 1=\{\mathrm{X} 1, \mathrm{X} 2, \mathrm{X} 3\}=\{\{\times 1, \mathrm{x} 2, \mathrm{x} 6\},\{\mathrm{x} 3, \mathrm{x} 4\},\{\times 5, \mathrm{x} 7, \mathrm{x} 8\}\} (颜色分类) \\ A / R 2=\{Y 1, Y 2, Y 3\}=\{\{x 1, x 2\},\{x 5, x 8\},\{x 3, x 4, x 6, x 7\}\} \quad (形状分类)\\ A / R 3=\{Z 1, Z 2, Z 3\}=\{\{x 1, x 2, x 5\},\{x 6, x 8\},\{x 3, x 4, x 7\}\} \quad (大小分类) \\ \\ R1=\{红,黑,蓝\}\\ R2=\{三角,方块,圆形\}\\ R3=\{大,中,小\}
ARR1={X1,X2,X3}={{×1,x2,x6},{x3,x4},{×5,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}}(大小分类)R1={红,黑,蓝}R2={三角,方块,圆形}R3={大,中,小}
**知识:所有的这些能够用交、并表示的概念以及加上上面的三个基本知识(A/R1,A/R2.A/R3)一起就构成了一个知识系统记为R=R1∩R2∩R3;
A/(R-R1-R3)=A/R2={{x1,x2},{x5,x8},{x3,x4,x6,x7}}。同样考虑“稳定”在知识系统A/R2中的上下近似分别为:{x1,x2,x5,x8}和{x1,x2},已经和原来知识系统中的上下近似不一样了,同样考虑“不稳定”的近似表示也变化了,所以删除属性“大小”是对知识表示有影响的故而不能去掉。同样的讨论对于“形状”属性,“形状”属性是不能去掉的。A/(R-R2)={{x1,x2},x6,{x3,x4},x5,x7,x8},通过求并可以得知“稳定”的下近似和上近似都是{x1,x2,x5},“不稳定”的上下近似都是{x3,x4,x6,x7,x8}。最后我们得到化简后的知识库R2,R3,从而能得到下面的决策规则:大三角-稳定,大方块-稳定,小圆-不稳定,中圆-不稳定,中方块-不稳定,利用粗集的理论还可以对这些规则进一步化简得到:大-稳定,圆-不稳定,中方块-不稳定。这就是上面这个数据表所包含的真正有用的知识,而这些知识都是从数据库有粗糙集方法自动学习得到的。因此,粗糙集是数据库中数据挖掘的有效方法。
信息系统
知识
论域的任何一个子集(包括空集)称为知识,是对论域进行分类的能力。一般由特征属性进行分类。
基本集
论域中互相不可分表的对象组成的集合。
精确集和粗糙集
在某一个知识下,如果论域可以由知识中的一个或者多个子集组合而成,那么就成为精确集,否则就成为粗糙集。
知识粒度
论域的划分构成粗糙集的一个近似空间,划分中的每一个分开成为一个知识粒度。在粗糙集中,等价类的力度越细,其划分能力就越强,近似集越精确。否则划分能力就弱,近似集越粗糙。
不可辨关系
如果在只是表达中,由于缺乏一定的知识,不能将已知信息系统中的某些对象区分开,那么这些对象之间就是不可分辨关系(等价关系)
比如,若在动物中,以黑白为知识区分,那么黑色的狗和黑色的猫就是不可分辨关系,也就是等价关系。
等价集
不同属性的属性集相同。
上近似和下近似
定义一:
- 下近似集是在那些所有的包含于X 的知识库中的集合中求并得到的(包含在X内的最大可定义集)
- 上近似则是将那些包含X的知识库中的集合求并得到的(包含X的最小可定义集)
定义二:
- 下近似包含了所有使用知识R可确切分类到X的元素。
- 上近似包含了所有那些可能是属于X的元素,
定义三:
- 下近似集定义为:根据现有知识R,判断U中所有肯定属于X的对象所组成的集合,即,式中,表示等价关系R下包含关系x的等价类;
- 上近似集定义为:根据现有知识R,判断U中一定属于和可能属于X的对象所组成的集合。
定义四:
- 下近似:最小上界
- 上近似:最大下界。
属性间的依赖度
属性重要度
最小属性集
特点
只要把这个数据库输入进粗糙集运算系统,而不用提供任何先验的知识,粗糙集算法就能自动学习出知识来,这正是它能够广泛应用的根源所在。而在模糊集、可拓集等集合论中我们还要事先给定隶属函数。
粗糙集理论作为一种处理不精确(imprecise)、不一致(inconsistent)、不完整(incomplete)等各种不完备的信息有效的工具,一方面得益于他的数学基础成熟、不需要先验知识;另一方面在于它的易用性。由于粗糙集理论创建的目的和研究的出发点就是直接对数据进行分析和推理,从中发现隐含的知识,揭示潜在的规律,因此是一种天然的数据挖掘或者知识发现方法,它与基于概率论的数据挖掘方法、基于模糊理论的数据挖掘方法和基于证据理论的数据挖掘方法等其他处理不确定性问题理论的方法相比较,最显著的区别是它不需要提供问题所需处理的数据集合之外的任何先验知识,而且与处理其他不确定性问题的理论有很强的互补性(特别是模糊理论)。
其主要思想是在保持分类能力不变的前提下,通过知识约简,导出问题的决策或分类规则。
粗糙集理论只能处理离散数据,连续的数据要先进行离散化处理。
粗糙集的应用
粗集理论在数据挖掘中的应用相当广泛,涉及的领域有医疗研究、市场分析、商业风险预测、气象学、语音识别、工程设计等.在众多的数据挖掘系统中,粗集理论的作用主要集中在以下几个方面:
1、数据约简
粗集理论可提供有效方法用于对信息系统中的数据进行约简.在数据挖掘系统的预处理阶段,通过粗集理论删除数据中的冗余信息(属性、对象以及属性值等),可大大提高系统的运算速度。
2、规则抽取
与其它方法(如神经网络)相比,使用粗集理论生成规则是相对简单和直接的.信息系统中的每一个对象既对应一条规则,粗集方法生成规则的一般步骤为:(1)得到条件属性的一个约简,删去冗余属性;(2)删去每规则的冗余属性值;(3)对剩余规则进行合并。
3、增量算法
面对数据挖掘中的大规模、高维数据,寻找有效的增量算法是一个研究热点。
4、与其他方法的融合
粗集理论与其它方法如神经网络、遗传算法、模糊数学、决策树等相结合可以发挥各自的优势,大大增强数据挖掘的效率。
算法实现
基于粗糙集数据挖掘的步骤:数据预处理、基于粗糙集或其扩展理论的数据约简、规则获取和简化等 。
其基本思想是:最开始使用粗糙集对原始数据源中的异常值、缺省值等进行处理;再建立决策表(信息系统表),并通过属性简约算法对决策表中数据属性简约与知识发现;最终获取规则并简化规则使其成为最有价值的知识,将其应用于新数据的分析处理。
属性约简算法正是基于粗糙集的数据挖掘过程的最重要的部分。它通过使用粗糙集理论本身的概念和定义,研究信息系统中每个属性是否必要,得出影响决策的最小属性集,即最小约简。
属性约简算法有很多种。
在训练样本的属性值离散化之后决策表中数据都为离散值。利用粗糙集方法对决策表中所有数据通过计算其属性重要度进行约简。约简步骤如下:1)计算条件属性C和决策属性D的等价集以及它们之间的依赖度;2)计算决策表内各属性重要度;3)根据得到的各属性的重要度的值简化决策表。此时就得到了约简后的属性,而这些属性也就是BP神经网络预测模型的最简输入变量。
基于信息熵的约简算法:https://www.jianshu.com/p/39920dc2050b
快速属性约简算法
对于决策表 S=(U,A,V,f),A=C∪D 中的每个条件属性执行以下过程,直到属性集对论域 U的划分发生变化为止。
任选一个条件属性 $ a_i ∈ C ,若从决策表 S 中删除该属性 ∈C,若从决策表 S 中删除该属性 ∈C,若从决策表S中删除该属性 a_iKaTeX parse error: Expected '}', got 'EOF' at end of input: …S(C,D)-POS(C -{ a_i$},D)=0成立,则说明属性 $ a_i$关于 D 是可省的,即把属性 $ a_iKaTeX parse error: Expected '}', got 'EOF' at end of input: …集 C 中删除之后, C-{ a_i$}中的信息仍可以使原来能被正确分类的对象依旧被准确划分到各决策类中。除去属性 $ a_i$所在的列后可以得到不再包含属性 $ a_iKaTeX parse error: Expected '}', got 'EOF' at end of input: …OS(C,D)-POS(C-{ a_iKaTeX parse error: Expected 'EOF', got '}' at position 1: }̲,D) ≠0 说明在 C 中… a_i$是不可省的不可被删除的,然后对剩余条件属性依次执行上述过程直到获得一个最终约简结果。
该约简算法操作简单,仅需要对各个属性扫描一遍,其过程易于理解,但是它往往得到的是一个相对约简结果,即假如我们对各属性使用不同的搜索方式,如广度搜索、深度搜索等,那么可能会得到不一样的多个约简集。
基于属性重要度的属性约简算法
通常决策表中不同的条件属性对决策属性具有不同的重要性。度量决策表中某个属性的重要度往往采用以下方法:先从决策表中除去该属性,再观察决策表的分类结果是否发生变化。如果在这一属性被删除后出现了决策表的分类能力有较大的变化,说明该属性对决策表的分类能力就越为重要;相反地,若出现的变化较小或者几乎没有变化,就说明了该属性对决策表的分类能力越不重要。
该算法是一个启发式约简算法,在数据挖掘领域被广泛使用,它能在获得准确约简结果的同时,花费较低的时间和空间代价。
条件属性的分类能力由γ (C,D)来判断:
若γ (C,D)=0,则表明依据条件属性集 C 的取值不能对任何对象进行准确分类。
若γ (C,D)=1,则表明依据条件属性集 C 的取值能够对 U 中全部对象进行准确分类。
输入:决策表 S=(U,A,V,f),A=C∪D,C(a1,a2,…,ak)为条件属性集,D 为决策属性集;
输出:约简结果,即最小条件属性集 Re;
步骤
1)初始化:令约简属性集 Re©= Ø,γ (Re©,D)=0,将各个条件属性 $ a_i$标记为 flase;
2)计算数据集条件属性的依赖度
获得 C 和 D 的等价集,获得 D 的各等价集的下近似集,进而计算出 POS(C,D)和属性依赖度γ (C,D);
3)计算各条件属性的重要度,并根据重要度确定约简属性集
For each $ a_i$∈C
求解 $ a_iKaTeX parse error: Expected '}', got 'EOF' at end of input: 的重要度 SGF(C-{ a_i$},D)
If SGF(C-{$ a_i$},D) ≠SGF(C,D)
将 $ a_iKaTeX parse error: Expected '}', got 'EOF' at end of input: … Re(C)=Re(C)+{ a_i$};
End if
End for;
4)计算约简集 Re©的依赖程度γ (Re©,D);
5)如果γ (Re©,D)=1,转到步骤 9,否则转到步骤 6;
- 将重要度大的属性集并入约简集
For each aj∈C-Re
求解 a j a_j aj的重要度$ SGF(C-{a_j},D)$,得到重要度值最大的属性 a m a_m am,如果同时出现多个属性都满足最大值,那么从其中选取和 B 的属性值组合数最少的一个属性作为 $ a_m ,令 R e ( C ) = R e ( C ) ∪ , 令 Re(C) =Re(C)∪ ,令Re(C)=Re(C)∪ a_m$;
End for
7)计算 Re©= γ (Re,D);
8)如果γ (Re©,D)=1,转到步骤 9,否则转到步骤 6;
9)输出约简结果 Re©。
重要度$ SGF(C-{a_j},D)$,得到重要度值最大的属性 a m a_m am,如果同时出现多个属性都满足最大值,那么从其中选取和 B 的属性值组合数最少的一个属性作为 $ a_m ,令 R e ( C ) = R e ( C ) ∪ , 令 Re(C) =Re(C)∪ ,令Re(C)=Re(C)∪ a_m$;
End for
7)计算 Re©= γ (Re,D);
8)如果γ (Re©,D)=1,转到步骤 9,否则转到步骤 6;
9)输出约简结果 Re©。