基于遗传算法的粗糙集属性约简方法

文档序号:6597316阅读:132来源:国知局
专利名称:基于遗传算法的粗糙集属性约简方法
技术领域
本发明属于数据处理技术领域,具体涉及一种基于遗传算法的粗糙集属性约简方法。

背景技术
粗糙集理论是由波兰华沙理工大学Pawlak教授于20世纪80年代初提出的一种研究不完整、不确定知识和数据的表达、学习、归纳的理论方法,已经广泛在人工智能、知识与数据发现、模式识别与分类、不精确数据的分析推理等方面取得了较成功的应用。属性约简是粗糙集的核心内容之一,长期以来都是数据挖掘研究的重要课题。属性约简是指在保持系统分类或决策能力不变的情况下,删除其中不重要和冗余的属性;也就是可以用较少的属性获得与原来的属性库相同的分类或决策能力。遗传算法(GA)是模拟生物进化过程的计算模型,具有全局搜索、隐含并行性、鲁棒性、可扩展性等特点,已经被应用到粗糙集属性约简算法中,用于进行属性约简。
但是,现有的属性约简方法,存在着计算、搜索时间过长和过早收敛问题。


发明内容
本发明要解决的技术问题是克服现有的粗糙集属性约简方法的不足,提供一种基于遗传算法的粗糙集属性约简方法,能够提高运算速度,更快获取得到约简信息。
本发明提供一种基于遗传算法的粗糙集属性约简方法,包括如下步骤 (1)求决策表的核,初始化随机产生初始群体; (2)通过属性核限制初始群体对应其基因位,根据适应度函数计算适应值; (3)采用修正算子对种群进行修复; (4)判断是否满足算法终止条件,若是,输出最佳个体,若否,进入(5); (5)在遗传算法中使用选择算子来对群体中的个体进行优胜劣汰操作; (6)采用单点交叉的规则,以交叉概率对种群进行交叉操作; (7)根据启发式变异算子,对种群进行变异操作,且属性核对应的基因位不发生变异。
优选的,所述算法终止条件为如果当连续繁殖很多代的最优个体的适应值没有变化时,则循环结束。
优选的,所述在遗传算法中使用选择算子来对群体中的个体进行优胜劣汰操作包括 对种群中的个体,按照其适应度在整个种群的个体适应度总和中所占的比例,采用轮盘赌方法进行选择; 采取最优个体保存方法构成新的群体。
优选的,所述进行交叉操作包括以一定的概率选择个体参与交叉,对于参与交叉的两个父代个体随机选取交叉点,然后对交叉后的部分子串进行交换,产生下一代个体。
上述技术方案可以看出,由于本发明实施例将属性重要性作为启发式信息描述变异算子,引入启发式遗传算法,在初始群体中设置属性核设置,并修正个体的适应度值,提高了算法的收敛度,且算法的编码和适应度函数都很简单,因此能够快速且有效的求得最小约简。



为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明基于遗传算法的粗糙集属性约简方法的流程图。

具体实施例方式 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供一种基于改进遗传算法的粗糙集属性约简方法,能够快速有效地获取决策表中属性的最小约简。以下分别进行详细说明。
本发明将属性重要性作为启发式信息描述变异算子,引入启发式遗传算法,在初始群体中添加属性,提出了一种改进启发式遗传算法的属性约简方法。
概括的说,包括以下步骤随机产生初始群体,计算适应度值,修正个体,然后判断是不是最佳个体,如果是则输出最佳个体,否则执行遗传算法的选择操作、交叉操作、变异操作。
具体则如下描述 在计算机输入信息系统S=(U,C∪D,V,f),其中U是对象的非空有限集合,C是条件属性集,D是决策属性集D;A是属性的非空有限集合,且A=C∪D,V表示全体属性的值域,

Va表示属性a∈A的值域;f表示UXA→V的一个映射,称为信息函数。输出信息为A的最小约简, 也即 获取的用户输入的信息信息系统S=(U,C∪D,V,f); 需要输出的信息属性集A的最小约简。
该方法执行以下操作 (1)求决策表的核,初始化随机产生初始群体; (2)通过属性核限制初始群体对应其基因位,然后根据适应度函数计算适应值; (3)采用修正算子对种群进行修复,在保证可行解的条件下尽量增加其适应值; (4)判断是否满足算法终止条件,若是,输出最佳个体,若否,进入(5); (5)采用单点交叉的规则,以交叉概率pc对种群进行交叉操作; (6)根据提出的启发式变异算子,对种群进行变异操作,且属性核对应的基因位不发生变异。
上述算法的终止条件为如果当连续繁殖很多代的最优个体的适应值没有变化时,则循环结束,否则转(3)。
以下结合附图进行更详细介绍。
图1是本发明的属性约简方法流程图,如图1所示,包括步骤 (1)初始化产生二进制种群; 假设开始t=1,从第一代种群开始随机产生二进制种群。二进制编码是遗传算法中经常使用的编码方法,它是由二进制符号0和1组成的。其中每一个位对应一个条件属性,如果在某个位置上其值为0,则表示其对应的条件属性可以去掉,如果在某个位置上其值为1,则表示其对应的条件属性被选中。比如某个决策表有6个条件属性{a1,a2,a3,a4,a5,a6},如果一个可能的约简是{a1,a3,a6},则其初始染色体的二进制编码形式为101001。
(2)属性核限制初始群体对应其基因位; 以属性核限制初始种群对应基因位,属性核即所有属性约简的交集,也就是说每一种属性的约简都包括了属性核。因此可以利用这一特性对种群进行限制,减少随机产生初始值的盲目性,提高算法的效率。比如某个决策表有6个条件属性{a1,a2,a3,a4,a5,a6},其核属性为{a2,a3},则其对应的编码都为“1”,其它条件属性由“0”或“1”随机产生。
(3)计算适应度值,用修正算子修复种群; 确定适应度函数,计算适应度值 由属性约简的定义可以得出,个体的适应度确定主要受两个方面的影响 1、所含的属性个数。染色体中含“1”的数量即所含属性的个数越少,被选择的概率越高; 2、属性的区分能力。染色体所区分的个体数量即分类能力即数量越多,被选择的概率越高;所以可以构造适应度函数为 即该函数由f(x),H(x)两部分组成 第一部分f(x)=(1-card(x)/card(C))表示目标函数,card()指集合的基数,card(x)表示个体x含“1”的个数,即x中所含条件属性的个数,card(C)表示条件属性集合的长度。f(x)表示在个体x中没有包含的属性的比率,且x中属性个数越少,其值就会越大。
对于后一部分H(x)=card(POSX(D))/card(POSC(D))为罚函数,POSC(D)表示D的C正域,β为罚因子,H(x)表示在个体中所含的条件属性C对决策属性D的所占的比率。同时为保证解的可行性,增加了一个修正算子,用来对种群进行修正,这样可以使得在可行解空间上总可以进行搜索,同时在此空间下可以增加个体适应度值。
对于给定的决策表S=(U,C∪D,V,f),修正的过程如下所示 步骤1计算S中决策属性集D对条件属性集C的正域POSC(D),只需计算一次。
步骤2计算POSC’(D)的值,其中C’表示当前个体的属性集。
步骤3若POSC′(D)=POSC(D),则重复下面的操作,否则转到步骤4 ①在{C-C’}中选择最大属性重要性Max(Sig(a,C,D)),a为当前个体的属性; ②将a对应的位由0置为1,C’={C-a},转到步骤2。
步骤4结束整个修正过程。
其中属性依赖度的定义如下对于信息系统S=(U,C∪D,V,f),令条件属性集C对决策属性集D的依赖程度定义为r(C,D)=|POSC(D)|/|U|。C’关于D的重要性定义为Sig(C’,C,D)=r(C,D)-r(C-C’,D);特别当C’={a}时,属性a∈C关于D的重要性定义为Sig(a,C,D)=r(C,D)-r(C-a,D)。
(4)判断是否满足算法终止条件,若是,输出最佳个体,若否进入(5) 当连续繁殖很多代的最优个体的适应度值没有发生变化时,则输出最佳个体,算法结束;否则执行下面的操作(5)。
(5)选择操作 在遗传算法中使用选择算子来对群体中的个体进行优胜劣汰操作,其步骤主要分为两步 步骤1设当前为第s代种群,Best(s)为种群最佳个体,BestF(s)为其适应度,对该种群中的个体,按照其适应度在整个种群的个体适应度总和中所占的比例,采用轮盘赌方法进行选择。
步骤2采取最优个体保存方法,设第i代群体中a(t)为最优个体,又设A(t+1)为新一代群体,若A(t+1)中的最优个体a’(t+1)的适应度小于a’(t)的适应度,则用a’(t)来代替A(t+1)中的最差个体。采用该方法,将以概率1收敛到最优解。
(6)交叉操作 交叉操作采用单点交叉,其主要的执行过程为以一定的概率Pc选择个体参与交叉,对于参与交叉的两个父代个体随机选取交叉点,然后对交叉后的部分子串进行交换,即产生下一代个体。
(7)变异操作 一般的变异算子是通过变异概率pm随机反转某位等位基因的二进制字符值来实现。本发明将属性重要性作为启发式信息,来描述变异算子,并且属性核对应的基因位不发生变异,对于给定的染色体位串s=a1a2…an,具体的操作过程如下 其中i=1,2,…,n,生成新的个体为s′=a1′a2′…an′。xi是第i个基因位产生的均匀随机变量,xi∈
。λ为已经计算过求得的属性重要值。
为了考察本方法的有效性,给定一个决策表S=(U,C∪D,V,f),C∪D=A,

U={X1,X2…X21),C={a1,a2…a9},D={d},信息函数f由表1给出。求该决策表的最小相对约简。
表1 决策表

对表1所给数据先采用一般属性约简遗传算法进行实验,计算中各参数值为 种群大小m=50,交叉概率Pc=0.75,变异概率Pm=0.03,β=2,在运行Windows XP,具有512M内存的PC机上运行10次,平均时间为1826(ms),求得属性约简的结果为{a1,a4,a5,a9}和{a1,a4,a5,a7}。
采用本方法提出的基于属性重要性的属性约简方法对表1进行实验(参数设置同上例),在同台PC机运行10次,平均运行时间为769(ms),求得属性约简的最后结果为{a1,a4,a5,a9},这个结果正好是所求的最优解,见表2实验结果比较。
表2实验结果比较 由实验结果可以看出,本发明方法是正确且有效的,而且能够准确得到约简{a1,a4,a5,a9},即可以删除表中其它属性的数据,也就是说,决策表中的条件属性所表达的数据只由属性a1、a4、a5和a9决定,并且本算法运行速度很快,节省了很多时间。
上述技术方案可以看出,由于本发明实施例将属性重要性作为启发式信息描述变异算子,引入启发式遗传算法,在初始群体中设置属性核设置,并修正个体的适应度值,提高了算法的收敛度,且算法的编码和适应度函数都很简单,因此能够快速且有效的求得最小约简。因此,本发明技术方案能够快速有效地获取决策表中属性的最小约简,从而可以使用户从庞大的数据信息中寻找他们需要的信息,删除不重要的信息,有效的提高了信息的准确性。
以上对本发明实施例所提供的一种基于遗传算法的粗糙集属性约简方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种基于遗传算法的粗糙集属性约简方法,其特征在于,包括如下步骤
(1)求决策表的核,初始化随机产生初始群体;
(2)通过属性核限制初始群体对应其基因位,根据适应度函数计算适应值;
(3)采用修正算子对种群进行修复;
(4)判断是否满足算法终止条件,若是,输出最佳个体,若否,进入(5);
(5)在遗传算法中使用选择算子来对群体中的个体进行优胜劣汰操作;
(6)采用单点交叉的规则,以交叉概率对种群进行交叉操作;
(7)根据启发式变异算子,对种群进行变异操作,且属性核对应的基因位不发生变异。
2.根据权利要求1所述的基于遗传算法的粗糙集属性约简方法,其特征在于
所述算法终止条件为如果当连续繁殖很多代的最优个体的适应值没有变化时,则循环结束。
3.根据权利要求1或2所述的基于遗传算法的粗糙集属性约简方法,其特征在于
所述在遗传算法中使用选择算子来对群体中的个体进行优胜劣汰操作包括
对种群中的个体,按照其适应度在整个种群的个体适应度总和中所占的比例,采用轮盘赌方法进行选择;
采取最优个体保存方法构成新的群体。
4.根据权利要求1或2所述的基于遗传算法的粗糙集属性约简方法,其特征在于
所述进行交叉操作包括
以一定的概率选择个体参与交叉,对于参与交叉的两个父代个体随机选取交叉点,然后对交叉后的部分子串进行交换,产生下一代个体。
全文摘要
本发明公开了一种基于遗传算法的粗糙集属性约简方法。该方法包括(1)求决策表的核,初始化随机产生初始群体;(2)通过属性核限制初始群体对应其基因位,根据适应度函数计算适应值;(3)采用修正算子对种群进行修复;(4)判断是否满足算法终止条件,若是,输出最佳个体,若否,进入(5);(5)在遗传算法中使用选择算子来对群体中的个体进行优胜劣汰操作;(6)采用单点交叉的规则,以交叉概率对种群进行交叉操作;(7)根据启发式变异算子,对种群进行变异操作,且属性核对应的基因位不发生变异。本发明技术方案能够快速有效地获取决策表中属性的最小约简,有效的提高了信息的准确性。
文档编号G06N5/00GK101763529SQ201010019400
公开日2010年6月30日 申请日期2010年1月14日 优先权日2010年1月14日
发明者罗笑南, 雷健, 陈曦 申请人:中山大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1