粗糙集属性约简matlab程序解析
- 格式:doc
- 大小:18.00 KB
- 文档页数:8
广义多粒度粗糙集属性约简和matlab计算
张先韬
【期刊名称】《计算机工程与应用》
【年(卷),期】2016(052)008
【摘要】定义了基于广义多粒度粗糙集的属性约简,研究了约简的一些基本性质,给出matlab计算的过程,并给出计算实例.定义了信息系统的严格协调、软不协调性、粒度协调、粒度不协调,定义了广义多粒度下约简、粒度约简、(下/上近似)分布协
调约简、(下/上近似)质量协调约简,并给出部分结论.广义多粒度粗糙集的约简适用于乐观多粒度粗糙集和悲观多粒度粗糙集.研究结果可完善多粒度粗糙集理论,为理
论研究和应用奠定基础.
【总页数】6页(P43-48)
【作者】张先韬
【作者单位】中煤科工集团重庆研究院有限公司,重庆 400039;瓦斯灾害监控与应
急技术国家重点实验室,重庆 400039
【正文语种】中文
【中图分类】TP18
【相关文献】
1.多粒度粗糙集模型下的矩阵属性约简算法 [J], 李丹
2.基于决策表的多粒度粗糙集属性约简研究 [J], 赵思雨;钱婷;魏玲
3.基于局部可调节多粒度粗糙集的属性约简 [J], 侯成军; 米据生; 梁美社
4.利用多粒度粗糙集属性约简和TOPSIS的IPv6负载均衡机制 [J], 罗宏等;蓝耿;聂良刚;粟光旺;伍一坤
5.多源覆盖信息系统下的加权广义多粒度粗糙集模型及其应用 [J], 骆公志;陈佳馨因版权原因,仅展示原文概要,查看原文内容请购买。
粗糙集属性约简注:这是我学粗糙集时老师给的作业属性约简的顺序如下:求正域、生成未经处理的区分矩阵、对区分矩阵进行化简、求核、对已经处理过的区分矩阵进行属性约简。
约简后的决策表有26行,所有12个属性都是正域中的属性,核为空程序:% main.mtic;a=[ 1,1,1,1,0,0,0,0,1,1,0,1;0,0,0,0,0,0,0,0,0,0,0,0;1,0,1,0,0,0,0,0,0,1,0,0;0,0,0,1,1,1,1,0,1,0,1,1;1,0,0,1,1,1,1,1,0,1,1,0;0,1,0,1,1,1,1,1,1,0,0,1;1,0,0,0,1,1,1,0,0,1,1,1;1,1,1,1,0,0,0,0,1,1,0,1;1,0,1,1,1,0,0,0,1,1,0,1;1,1,1,1,0,0,0,0,1,1,0,1;1,0,1,1,1,0,0,0,1,1,0,1;1,0,1,1,1,0,0,0,1,1,0,1 ];d=[1;0;0;0;0;0;0;1;1;1;1;1];pos=posCD(a,d);dismat=dismatrix(a,d,pos);dism=disbe(dismat);core=cor(dism); [red,row]=redu(dism); time=toc% dismatrix.m% 生成未经处理的区分矩阵dismatfunction dismat=dismatrix(a,d,pos)[m,n]=size(a);p=1;index1=0;index2=0;index=0;dis=-1*ones(m*(m-1)/2,n);for i=1:mfor j=i+1:mif (isxbelongtopos(i,pos)&~isxbelongtopos(j,pos))...|(~isxbelongtopos(i,pos)&isxbelongtopos(j,pos)). ..|(isxbelongtopos(i,pos)&isxbelongtopos(j,pos)&~i sxybelongtoindD(i,j,d))index2=1;endif index2==0continue;endfor k=1:nif a(i,k)~=a(j,k)dis(p,k)=1;index1=1;else dis(p,k)=0;endendif index1==1p=p+1;index=1;endindex1=0;index2=0;endendif p<=m*(m-1)/2if index==0dismat=[];return;endif dis(p,1)==-1p=p-1;endelse p=m*(m-1)/2;enddismat=dis(1:p,:);% redu.m% 对已经处理过的区分矩阵进行知识约简function [red,row]=redu(dism)[m,n]=size(dism);red=[];row=0;if m<=0return;endfor i=1:nif dism(1,i)~=0row=row+1;endendred(1:row,:)=zeros(row,n);j=1;for i=1:rowwhile dism(1,j)==0j=j+1;endred(i,j)=1;j=j+1;endtemp=[];tempdis=[];rowd=0;rowd1=0;for i=2:mj=1;while j<=rowtemp=uni(dism(i,:),red(j,:));[s,n]=size(temp);rowd1=rowd+s;tempdis(rowd+1:rowd1,:)=temp;rowd=rowd1;j=j+1;temp=[];endred=[];red=disbe(tempdis);tempdis=[];[row,n]=size(red);rowd=0;rowd1=0;end% disbe.m% 对区分矩阵或者约简矩阵进行化简即去掉包含关系function dism=disbe(dis)[m,n]=size(dis);p=m;for i=1:mif dis(i,1)~=-1for j=1:mif i~=j & dis(j,1)~=-1if dis(i,:)<=dis(j,:)dis(j,1)=-1;p=p-1;elseif dis(i,:)>=dis(j,:)dis(i,:)=dis(j,:);dis(j,1)=-1;p=p-1;endendendendenddism=ones(p,n);j=1;for i=1:pwhile j<=m & dis(j,1)==-1j=j+1;enddism(i,:)=dis(j,:);j=j+1;end% posCD.m% a为条件属性矩阵,d为决策属性向量% pos为正域,保存条件属性矩阵的索引值function pos=posCD(a,d)[m,n]=size(a);p=m;index=0;for i=1:mif a(i,1)~=-1for j=i+1:mif a(j,1)~=-1 &(a(i,:)==a(j,:)&d(i)~=d(j))a(j,1)=-1;p=p-1;index=1;endendif index==1a(i,1)=-1;p=p-1;index=0;endendendpos=zeros(p,1);i=1;for r=1:pwhile a(i,1)==-1&i<=mi=i+1;endpos(r)=i;r=r+1;i=i+1;end% cor.m% 对已经处理过的区分矩阵求核function core=cor(dism)[m,n]=size(dism);core1=zeros(1,n);number=0;for i=1:mnum=0;p=0;for j=1:nif dism(i,j)~=0num=num+1;p=j;endendif num==1core1(p)=1;number=number+1;endendif number==0core=0;elsecore=zeros(1,number);j=1;for i=1:numberwhile core1(j)==0j=j+1;endcore(i)=core1(j);j=j+1;endend% uni.m%对区分矩阵的第i行和red(j,:)运算,即将a中%所有的1分别插入到red(j,:)中,待去掉包含关系function tempred=uni(disa,red)[m,n]=size(red);num=0;for i=1:nif disa(i)~=0num=num+1;endendtempred=ones(m*num,n);temp=[];j=1;for i=1:numwhile disa(j)==0j=j+1;endtemp=red;temp(:,j)=ones(m,1);tempred((i-1)*m+1:i*m,:)=temp;j=j+1;end% isxbelongtopos.m% 判断x是否在正域pos中% x为索引值% 返回值p,如果x在pos中p=1否则p=0 function p=isxbelongtopos(x,pos)[m,n]=size(pos);p=0;if x<=0p=-1;return;endfor i=1:mif x==pos(i)p=1;break;endend% isxybelongtoindD.m% 判断x,y是否在indD中% x,y为索引值% 返回值p,如果x,y在indD中p=1否则p=0 function p=isxybelongtoindD(x,y,d)if x<=0 | x>size(d) | y<=0 | y>size(d) p=-1;return;endif d(x)==d(y)p=1;else p=0;end约简后的决策表如有侵权请联系告知删除,感谢你们的配合!。
第21卷第4期重庆邮电大学学报(自然科学版)Vol .21 No .42009年8月Journa l of Chongq i n g Un i versity of Posts and Teleco mm un i ca ti on s(Na tura l Sc i ence Ed iti on)Aug .2009一种基于Rough 集的海量数据属性约简方法收稿日期:2009203225 基金项目:国家自然科学基金(60573068);重庆市自然科学基金重点项目(2008BA2017);重庆市教育委员会科学技术研究项目(KJ090512,KJ7150080050)胡 峰,张 杰,刘 静,肖大伟(重庆邮电大学计算机科学与技术研究所,重庆400065)摘 要:海量数据属性约简的研究是数据挖掘研究中的一个难点。
已有的许多属性约简算法对于空间复杂度考虑得不够,导致了算法不能适应大数据集的约简处理。
结合分治法,在给定属性序下,提出了基于分治策略的属性约简算法。
利用该算法可以快速得到海量数据的属性约简结果。
仿真实验结果说明了该算法的高效性。
关键词:粗集;数据挖掘;分治;属性约简;属性序中图分类号:TP18 文献标识码:A文章编号:16732825X (2009)0420455206A ttr i bute reducti on a lgor ith m for huge da t a ba sed on rough set theoryHU Feng,ZHANG J ie,L IU J ing,X I A O Da 2wei(I nstitute of Computer Science and Technol ogy,Chongqing University of Posts and Telecommunicati ons,Chongqing 400065,P .R.China )Abstract:The attribute reducti on of huge data is a difficult p r oble m in the research of data m ining .A t p resent,many at 2tribute reducti on algorith m s lack considerati on on s pace comp lexity,which makes the m cannot adap t t o the reducti on of large data set .I n this paper,an attribute reducti on algorith m of ordered attributes was p r oposed based on the divide and conquer,and this algorith m can be used t o dealwith huge data reducti on .Si m ulati on results show the efficiency of the algo 2rith m.Key words:r ough set;data m ining;divide and conquer;attribute reducti on;attribute order0 引 言海量数据是指巨大的、浩瀚的数据。
粗糙集理论中的属性约简方法介绍粗糙集理论是一种用于处理不确定性和模糊性问题的数学工具,它在数据挖掘、机器学习和模式识别等领域得到了广泛应用。
属性约简是粗糙集理论中的一个重要概念,它能够帮助我们从大量的属性中找到最为重要的属性,减少数据处理的复杂性。
本文将介绍粗糙集理论中的一些常用属性约简方法。
1. 正域约简方法正域约简方法是粗糙集理论中最为常用的一种属性约简方法。
其基本思想是通过比较不同属性对决策类别的区分能力,来确定最为重要的属性。
具体步骤如下:首先,计算每个属性与决策类别之间的依赖度,依赖度越大表示属性对决策类别的区分能力越强。
然后,根据依赖度的大小进行排序,选择依赖度最大的属性作为初始约简。
接下来,逐步添加其他属性,并计算约简后的属性集对决策类别的依赖度。
如果添加属性后的依赖度没有显著提高,则停止添加,得到最终的约简属性集。
2. 相关属性约简方法相关属性约简方法是一种基于属性之间相关性的约简方法。
它通过计算属性之间的相关系数或互信息量来评估属性之间的相关性,并选择相关性较低的属性进行约简。
具体步骤如下:首先,计算属性之间的相关系数或互信息量。
然后,根据相关系数或互信息量的大小进行排序,选择相关性较低的属性作为初始约简。
接下来,逐步添加其他属性,并计算约简后的属性集的相关系数或互信息量。
如果添加属性后的相关性没有显著提高,则停止添加,得到最终的约简属性集。
3. 基于粒计算的约简方法基于粒计算的约简方法是一种基于粒度理论的属性约简方法。
它通过将属性集划分为不同的粒度,来减少属性的数量。
具体步骤如下:首先,将属性集划分为不同的粒度。
每个粒度包含一组相关性较高的属性。
然后,选择每个粒度中最为重要的属性作为初始约简。
接下来,逐步添加其他粒度,并计算约简后的属性集的重要性。
如果添加粒度后的重要性没有显著提高,则停止添加,得到最终的约简属性集。
4. 基于遗传算法的约简方法基于遗传算法的约简方法是一种基于进化计算的属性约简方法。
基于自适应遗传算法的粗糙集属性约简算法孙娓娓;王春生;姚云飞【摘要】为了获得有效的最小属性约简,提出了一种基于改进遗传算法的粗糙集属性约简算法.该算法将属性的相对核加入遗传算法的初始种群以提高算法的收敛速度.通过采用自适应交叉和变异、修剪相似个体、动态补充新个体等遗传操作,增加了群体的多样性,避免了“早熟”现象.仿真结果表明,算法在约简的效率和准确性方面都取得了较好的结果,是一种行之有效的属性约简算法.%In order to get the reduction of attribute,a new rough set attribute reduction algorithm based on Improved Genetic Algorithm (IGA) is proposed.The relative core of attribute is joined initial population in IGA in order to improve the convergence rate.By using self-adaptive crossover and mutation, pruning similar individuals, supplying new individuals dynamically and other operations, the diversity of population is increased and the "premature" phenomenon is avoided.The simulation results show that this algorithm has achieved better results in the efficiency and accuracy of reduction.It is an effective attribute reduction algorithm.【期刊名称】《计算机工程与应用》【年(卷),期】2011(047)033【总页数】3页(P49-51)【关键词】属性约简;遗传算法;相对核;自适应;修剪【作者】孙娓娓;王春生;姚云飞【作者单位】阜阳师范学院数学与计算科学学院,安徽阜阳236041;阜阳师范学院数学与计算科学学院,安徽阜阳236041;阜阳师范学院数学与计算科学学院,安徽阜阳236041【正文语种】中文【中图分类】TP301粗糙集理论[1]是由波兰数学家Z.Pawlak于1982年提出的一种处理不精确、不相容、不完备数据的新型数学工具。
粗糙集理论中属性相对约简算法张腾飞,肖健梅,王锡淮(上海海事大学电气自动化系,上海200135) 摘 要: 粗糙集理论是近年来发展起来的一种有效地处理模糊和不确定性知识的数学工具,而求核与约简是粗糙集理论中的两个重要问题,现已证明求决策表所有约简和最小约简是一个典型的NP 难题.本文在分析粗糙集理论的基础上,发现了正区域的一些有用性质,提出了一种利用正区域直接求核的方法,并利用正区域的启发式信息给出了两种相对约简算法.关键词: 粗糙集;求核;相对约简;决策表中图分类号: TP18 文献标识码: A 文章编号: 0372-2112(2005)11-2080-04Algorithms of Attribute Relative Reduction in R ou gh Set TheoryZHANG Teng -fei ,XI AO Jian -mei ,W ANG Xi -huai(Depart me nt of El ectr ical and Aut omati on ,Shanghai Maritime Unive rs ity ,Shanghai 200135,C hina )Abstract : Rough set is a valid mathematical theory developed in recent years ,which has the abilit y to deal with imprecise ,un -certain ,and vague in formation .The core and reduction of attributes are two imp ortant topics in the research on rough set theory .It has been proven that computing all the reductions and the optimal (minimal )reduction of decision table is a NP -hard problem .In this paper ,Rough set theory is deeply investigated ;a number of useful properties of the positive region are discovered .Based on the above findings ,we present a calculation algorith m for core directly .And then ,two algorithms for relative reduction based on the positive re -gion are designed .Key words : rough set theory ;finding core ;relative red uction ;decision table1 引言 粗糙集理论是波兰数学家Z .Pawlak 教授提出来的一种新型的处理模糊和不确定性知识的数学工具[1,2].经过二十多年的研究和发展,粗糙集理论已经在决策与分析、故障诊断、模式识别、数据挖掘、系统建模、动态目标识别及跟踪等领域取得了很大的成功[3~6].粗糙集理论是以不可分辨关系为基础,通过引入上近似(upper approximation )集和下近似(lower approximation )集来描述一个集合.信息系统的求核与约简是粗糙集理论和应用研究的焦点问题.信息系统分为无决策信息系统和有决策信息系统,在实际应用中大多为有决策信息系统,用决策表来表示,它是粗糙集研究的主要对象,因此决策表信息系统的求核与约简的研究更为重要.由于求所有属性约简是NP 难题,因此到目前为止,还没有一个高效的求最佳与所有属性约简的算法.不过,在实际应用中,往往只要求出某种次优的属性约简就可以了.为此,人们已提出了若干个属性求核和约简算法,其中应用较多的是基于差别矩阵以及在此基础上的一些改进算法[7,8];文献9给出了基于信息论的方法,用信息熵作为选择重要属性的启发式信息;文献[10]基于变精度粗糙集理论,利用可辨识属性矩阵研究了不协调目标信息系统的知识约简算法;文献[11]将包含度概念和证据理论引入到粗糙集理论中,建立了包含度与粗糙集数据分析中的度量之间的关系,这几种方法的主要缺点是空间复杂度高,计算繁琐,不适用大规模数据.经过深入分析粗糙集理论,本文发现了正区域的一些性质,提出了一种直接求核的方法,并利用正区域的启发式信息给出了两种属性相对约简算法.实验结果表明,本文的方法简单有效.2 粗糙集的基本理论 决策表是一类特殊而重要的知识表达系统,多数决策问题都可以用决策表形式来表达,这一工具在粗糙集理论中起着重要的作用.决策表可以根据知识表达系统定义如下:设S =〈U ,R ,V ,f 〉为一知识表达系统,U 是论域,R =C ∪D ,C ∩D =Υ,C 称为条件属性集,D 称为决策属性集.V收稿日期:2004-03-01;修回日期:2004-09-25基金项目:国家自然科学基金(No .60074004);上海市教委科学研究重点项目(No .04F A02);上海市重点学科建设项目(No .T0602)第11期2005年11月电 子 学 报ACTA ELECTRONICA SINICA Vol .33 No .11Nov . 2005为属性值的集合,f:U×R※V是一个信息函数,它指定U中每一个对象x的属性值.具有条件属性和决策属性的知识表达系统称为决策表.定义1 在信息系统S中,对于属性子集P R,不可分辨关系定义为:IND(P)={(x,y)∈(U×U:a∈P,a(x)=a(y)}显然IND(P)也是等价关系,对象x在属性集P上的等价类[x]IN D(P)={y:y∈U,xIND(P)y}.U/R表示R的所有等价类.定义2 给定信息系统决策表S=〈U,R,V,f〉,对于每个子集X U和不可分辨关系P,X的下近似集和上近似集可以分别定义为:RX=∪{y∈U/R Y X}RX=∪{y∈U/R Y∩X≠Υ}.下近似集RX也称为X的R正区域,记为:PO S R(X).众所周知,知识库中知识(属性)并不是同等重要的,甚至其中有些知识是冗余的.这就需要知识约简.所谓知识约简就是在保持分类能力不变的条件下,删除其中不相关或不重要的知识.定义3 设R为一族等价关系,r∈R,如果IND(R)=IND(R-{r}).则称r为R中不必要的;否则称r为R中不必要的,不可以约简的.如果每一个r∈R都为R中必要的,则称R为独立的;否则称R为依赖的.设P R,若P是独立的,且IND(P)=IND(R).则称P为R的一个约简;R的约简往往不止一个,所有约简的交集称为核,记作Core(R).在信息系统决策表的应用中,需要研究条件属性的分类相对于决策属性的分类之间的关系,因此相对约简和相对核的概念十分重要.定义4 设P和Q为U中的等价关系,Q的P正区域记为PO S P(Q),即P OS P(Q)=∪X U/QPXQ的P正区域是U中所有根据分类U/P的信息可以准确划分到关系Q的等价类中去的对象集合.定义5 设P和Q为U中的等价关系,r∈P,如果PO S P (Q)=PO S(P-{r})(Q),则称r为P中Q不必要的,否则r为P 中Q必要的.如果P中每个r都为Q必要的,则称P为Q独立的.设R P,如果R为Q独立的,且P OS R(Q)=P OS P(Q).则称R为P的Q约简.P的所有Q约简的交集称为P的Q核.记为Co re Q(P). P的Q核是P中所有Q必要的原始关系构成的集合.3 属性求核算法 在粗糙集理论中,相对核与约简都是基于正区域而定义的.对于信息系统决策表S=〈U,R,V,f〉,其中U为论域,R =C∪D,设属性a i∈C,由不可分辨关系的定义可知关系C 要比(C-{a i})对U的分类细,再由定义4,显然有正区域的如下性质:性质1 PO S(C-{ai})(D)PO S C(D).定理1 a i是C中的一个属性,若满足PO S(C-{ai})(D)=PO S C(D)则a i不是C相对于决策属性D的核属性.证明:由定义5可知,若上式成立,则a i就是C中相对于决策属性D不必要的,显然,a i不是核属性.定理2 C中的一个属性a i是C相对于决策属性D的核属性的充分必要条件是PO S(C-{ai})(D)≠PO S C(D)证明:充分性.如果P OS(C-{ai})(D)≠POS C(D),根据定义5,a i 就是C中必要的,即为不可以约简的,为了说明属性a i为核属性,采用反证法.假设a i为非核属性,根据核的定义,至少有一个约简P 不包含属性a i.由于P为C的约简,且不包含a i,由性质1可得:P OS P(D)PO S(C-{ai})(D)POS C(D)根据约简的定义可知必然有P OS P(D)=P OS C(D)所以:PO S(C-{ai})(D)=PO S C(D)这与条件PO S(C-{ai})(D)≠PO S C(D)相矛盾.充分性得证.必要性.如果P OS(C-{ai})(D)=PO S C(D),由定理1可知a i一定为非核属性.所以如果a i为核属性,则PO S(C-{ai}) (D)≠PO S C(D).证毕.根据上述两个定理,我们可以得到一个基于正区域的直接求核算法.算法1 信息系统决策表相对核计算方法.输入:信息系统决策表S=〈U,R,V,f〉,R=C∪D是属性集合,C={a i i=1, 2,…,m}和D={d i i=1,2,…,n}分别称为条件属性集和决策属性集;输出:信息系统决策表相对核Cor e;Step1 求P OS C(D);Step2 令Co re=Υ;Step3 对条件属性集C中的每个属性a i,如果PO S(C-{ai})(D)≠PO S C(D)则Co re=Core∪{a i}.Step4 结束,集合Core为输出.4 属性相对约简算法 在决策表中不同的属性可能具有不同的重要性,为找出某些属性的重要性,通常的方法是从决策表中去掉这个属性,2081第 11 期张腾飞:粗糙集理论中属性相对约简算法考察没有该属性后分类的变化情况.若去掉该属性相应变化较大,则说明该属性比较重要;反之,说明该属性不是太重要,即重要性较低.这里我们应用正区域作为属性重要性的启发式信息,把pos =PO S C (D )-PO S (C -{r })(D )的大小作为属性重要性的判断条件.下面给出两个基于正区域的决策表约简算法.算法2是以核集为基础,逐步选择比较重要的属性加入该集合,直到满足条件POS Redu ct (D )=POS C (D ),Reduct 即为约简.算法3是把整个条件属性集C 作为一个约简,利用正区域的启发式信息逐步将该集合中不必要的属性约去,但仍满足上述条件,保证得到的属性集合Reduct 为约简.算法2 基于核的相对约简算法.输入:信息系统决策表S =〈U ,R ,V ,f 〉,R =C ∪D 是属性集合,C ={a i i =1,2,…,m }和D ={d i i =1,2,…,n }分别称为条件属性集和决策属性集;输出:信息系统决策表相对约简Reduct ;Step 1 计算决策属性D 对于条件属性C 的正区域PO S C(D );Step 2 计算条件属性C 相对于决策属性D 的核属性集Co re D (C );并令Reduct =Co re D (C );Rem =C -Cor e D (C ).Step 3 若Reduct =Υ,直接转下一步;若Reduct ≠ ,计算PO S Red uct (D ).如果P OS Redu ct (D )=PO S C (D ),则终止,Reduct 为约简.否则转下一步;Step 4 从Rem 中选择属性a i ,使下式的值最大:pos =PO S Rem (D )-PO S (Rem -{a i})(D )Reduct =Reduct ∪{a i }Rem =Rem -{a i }Step 5 若PO S Reduct (D )=PO S C (D ),则终止,输出约简为Reduct ;否则转Step 4.算法3 信息系统决策表相对约简计算方法.输入:信息系统决策表S =〈U ,R ,V ,f 〉,R =C ∪D 是属性集合,C ={a i i =1,2,…,m }和D ={d i i =1,2,…,n }分别称为条件属性集和决策属性集;输出:信息系统决策表相对约简Reduct ;Step 1 计算决策属性D 对于条件属性C 的正区域PO S C(D );Step 2 对每个属性a i 计算po s =PO S C (D )-PO S (C -{a i})(D );Step 3 令Reduct =C ;将属性a i 按po s 从小到大的顺序排列,对每个a i 执行操作:若PO S (Reduct -{a i})(D )=PO S C (D ),则属性a i 应约简,Reduct =Reduct -{a i };否则a i 不能被约简,Redu ct 不变;Step 4 结束.由粗糙集理论知道,任何决策表的相对核都是唯一的,而且包含在所有的相对约简之中,算法2把相对核作为约简算法的起点,逐步增加对决策分类能力较大的属性,直到满足由相对约简定义的条件,所以基本可以保证得到最小的约简;算法3则是以条件属性全体为基础,在保证对决策表分类不变的前提下,逐步消去对决策分类能力较小的属性,算法简单,只需对各个属性扫描一遍即可.5 实例分析 为了验证上述算法的有效性,本节选择了一个已知核与约简的Wong -Ziarko 决策表[12]和UCI 机器学习数据库[13]中的三个决策表进行计算,实验结果如表1所示.表1 求核与约简算法结果决策表实例数条件属性数算法1算法2算法3Wong -Ziarko decis ion table 219{D ,I }{A ,D ,E ,I }{B ,D ,F ,G ,I }BUP A liver disorders 3456{}{A ,B ,E }{C ,D ,E }Glas s Identification 21410{}{A }{A }Ionosphere Databas e35134{}{4,18,24}{30,33,34} 实验结果表明,算法2和3对于属性相对约简是有效的,并且大多情况下可以得到最小约简.对于Wong -Ziarko 决策表,算法3虽然没有得到最小约简,但也得到了次优约简.6 结论 决策表核的确定和属性约简算法是粗糙集理论研究的焦点问题,本文在深入理解粗糙集基本概念的基础上,发现了正区域的一些有用性质,在此基础上给出直接利用正区域的信息求属性核,并给出了两个求属性相对约简的算法,实验结果表明了算法的有效性.由于利用正区域作为属性约简的启发式信息,也仅是从等价关系分类能力的角度对属性重要性进行粗略度量,并不能严格分辨出各个属性的重要程度.因此,如何利用粗糙集理论知识来度量属性重要性以便可以简单的求取最小约简还有待进一步的研究.参考文献:[1] Pawlak Z .Rough sets [J ].International Journal of Computer and Information Science ,1982,11(5):341-356.[2] Pawlak Z .A rough set view on Bayes 'theorem [J ].Interna -tional Journal of Intelligent Systems ,2003,18(5):487-498.[3] Tay F ,et al .Fault diagnosis based on rough set theory [J ].Engineering Applications of Artificial Intelligence ,2003,16(1):39-43.[4] Zhang T F .Dynamic system modeling based on rough sets and RBF neural networks [A ].Proc of the 5th World Congress onIntelligent Control and Automation [C ].Hangzhou ,2004.185-189.[5] 徐捷等.基于粗糙集理论的动态目标识别及跟踪[J ].电子学报,2002,30(4):605-607.Xu Jie ,et al .Dynamic objects identifying and tracing based2082 电 子 学 报2005年on rough set theory[J].Acta Electronica Sinica,2002,30(4):605-607.(in Chinese)[6] 张文修,等.Rough集理论与方法[M].北京:科学出版社,2001.[7] Hu X H,et al.Learnin g in relational databases:A rough setapproach[J].International Journal of Computational Intelli-gence,1995,11(2):323-338.[8] 刘文军,等.基于可辨识矩阵和逻辑运算的属性约简算法的改进[J].模式识别于人工智能,2004,17(1):119-123.[9] 王国胤,等.基于条件信息熵的决策表约简[J].计算机学报,2002,25(7):759-766.[10] Mi J S,et al.Approaches to knowledge reduction based onvariable precision rough set model[J].Information Sciences,2004,159(3):255-272.[11] Zhang M,et al.A rough set approach to knowledge reductionbased on inclusion degree and evidence reasoning theory[J].Expert Systems,2003,20(5):298-304.[12] Wong S K M,et al.On optimal decision rules in decision ta-bles[J].Bulletin of Polish Academy of Science,1985,33(11-12):693-696.[13] /mlearn/MLRePOSitory.html[DB/OL].作者简介:张腾飞 男,1980年出生于河南省,博士研究生,主要从事粗糙集和神经网络的研究.肖健梅 女,1962年出生于辽宁省大连市,教授,主要从事智能控制,智能信息处理等方面的研究.王锡淮 男,1961年出生于江苏省淮安市,博士,博士生导师,主要从事粗糙集理论,复杂系统建模与控制等方面的研究.E-mail:wxh@.2083第 11 期张腾飞:粗糙集理论中属性相对约简算法。
表面粗糙度计算公式用matlab编程全文共四篇示例,供读者参考第一篇示例:表面粗糙度是描述表面几何形态的一个参数,通常用于评价工件表面的光洁度和质量。
表面粗糙度通常用Ra值(平均粗糙度)来表示,Ra值越小代表表面越光滑。
而计算表面粗糙度的公式是通过对表面的高度数据进行统计分析来得到的。
在工程领域中,粗糙度的计算是一个非常重要的问题,可以在生产加工过程中进行质量控制和优化工艺。
本文将介绍如何使用Matlab编程来计算表面粗糙度的Ra值。
Matlab是一种强大的科学计算软件,可以用来处理各种数据分析和数学运算问题。
通过编写程序来进行表面粗糙度的计算,可以提高计算效率,并且减少人为误差。
下面将介绍如何用Matlab编程实现表面粗糙度计算。
首先,我们需要获取表面的高度数据。
这些数据通常来源于表面扫描仪或者测高仪,可以保存为txt文件或者Excel文件。
在Matlab 中,我们可以使用readtable函数来读取高度数据文件,并将数据存储在一个矩阵中。
接下来,我们需要对高度数据进行处理,计算Ra值。
计算Ra值的基本步骤如下:1. 将高度数据归一化,即将数据的中心点调整到零点,以便后续计算。
2. 计算高度数据的梯度,即计算相邻两个点之间的高度差值。
3. 计算高度数据的平方,并对结果进行求和。
4. 将结果开方,得到均方根值,即Ra值。
下面是具体的Matlab编程实现代码:```matlab% 读取高度数据文件data = readtable('height_data.txt');height = table2array(data);% 归一化高度数据mean_height = mean(height);height = height - mean_height;% 计算高度数据的梯度gradient_height = diff(height);% 计算均方根值Raroughness =sqrt(sum(gradient_height.^2)/length(gradient_height));disp(['表面粗糙度Ra值为: ', num2str(roughness)]);```通过以上代码,我们可以得到表面的粗糙度Ra值。
粗糙集属性约简m a t l a b程序标准化管理部编码-[99968T-6889628-J68568-1689N]粗糙集-属性约简-m a t l a b程序Data2为条件属性,decision2为决策属性%%%my_test函数实现clc;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读取信息系统文件file=textread('data2.txt','%s','delimiter','\n','whitespace','');%读取文件信息,每一行为一个胞元[m,n]=size(file);%胞元的大小fori=1:mwords=strread(file{i},'%s','delimiter','');%读取每个胞元中字符,即分解胞元为新的胞元words=words';%转置X{i}=words;endX=X'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[B,num,AT]=my_reduct(X);%信息系统的约简ind_AT=ind(X);%信息系统的不可等价关系%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%显示约简信息系统disp('约简后的条件系统为:');[m,n]=size(B);fori=1:mdisp(B{i});end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读取决策系统文件file=textread('decision2.txt','%s','delimiter','\n','whitespace','');[m,n]=size(file);fori=1:mwords=strread(file{i},'%s','delimiter','');words=words';D{i}=words;endD=D'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%决策系统的正域约简X_D=X;[l,k]=size(X_D{1});pos_d=pos(X_D,D);%正域fori=1:m%%%%%%%%%%%%%%正域有问题%%%%%%%%%%%%%%%%%%%%%%%%%%%if(~ismember(num(i),pos_d))B{i}='';%若约简后的信息系统B{i}不在正域中则删除该行end%因为相同的条件得到的决策不一样,end%将在正域规则下约简过的信息系统B连接决策系统Dfori=1:mif(~isequal(B{i},''))B{i}{1,k+1}=D{i}{1};endend %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%显示约简决策系统disp('约简后的决策系统为:');[m,n]=size(B);fori=1:mdisp(B{i});end--------------------------------------------------------------------------------%%%%%my_reduct函数实现function[C,num,reduct_attr]=my_reduct(X)%%%%%y为约简后的cell数组,reduct_attr为可约去的属性%X为行向量(元素为胞元)clc; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%约简[m,n]=size(X);[p,k]=size(X{1});ind_AT=ind(X);%寻找不可等价关系reduct_attr=[];%可约去的的属性num=zeros(m,1);%约简后的信息对应的个体fori=1:kB=delete_AT(X,i);if(isequal(ind_AT,ind(B)))%若IND(AT-{a}=IND(AT)reduct_attr=union(reduct_attr,i);%则寻找到可约去的属性X=B;endend%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%剔除重复的行k=1;fori=1:mif(~isequal(ind_AT{i},[]))C_i=ind_AT{i,1}(1);num(k)=i;C{k,1}=X{C_i};%返回约简后的信息系统k=k+1;endend--------------------------------------------------------------------------------%%%%%ind函数实现functionyy=ind(X)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%寻找不可分辨关系k=1;ind_AT=cell(m,1);fori=1:mforj=(i+1):m%潜在问题,如i=m是终止循环,此时若最后一行不为空的话,将漏扫if(~isequal(X{i},''))%若X{i}不为空ind_AT{k}=union(ind_AT{k},i);%不可等价关系赋初值if(isequal(X{i},X{j}))X{j}='';%若X{i}==X{j},则删除X{j}ind_AT{k}=union(ind_AT{k},j);%寻找不可等价关系endendendk=k+1;end--------------------------------------------------------------------------------%%%delete_AT函数的源代码functiony=delete_AT(X,ATi)%删除X中第i列的属性值[m,n]=size(X);[l,k]=size(X{1});fori=1:mX{i}{ATi}='';endy=X;--------------------------------------------------------------------------------%%%%%pos函数实现functionpos_d=pos(X,D)%求决策系统的正域函数%X为条件属性,D为决策属性ind_D=ind(D);%求决策属性D的不可等价关系[m,n]=size(ind_D);ind_X=ind(X);%求信息系统属性X的不可等价关系low=[];%存储正域个体的编号fori=1:mforj=1:mif(~isequal(ind_X{i},[])&&~isequal(ind_D{j},[]))if(ismember(ind_X{i},ind_D{j}))low=union(low,ind_X{i});%由性质Pos_AT(d)=low_AT(X1)Ulow_AT(X2)U...endendendendpos_d=low;。
粗糙集-属性约简-matlab程序
Data2为条件属性,decision2为决策属性
%%%my_test函数实现
clc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读取信息系统文件
file = textread('data2.txt','%s','delimiter','\n','whitespace',''; %读取文件信息,每一行为一个胞元
[m,n]=size(file; %胞元的大小
for i=1:m
words=strread(file{i},'%s','delimiter',' ';%读取每个胞元中字符,即分解胞元为新的胞元
words=words';%转置
X{i}=words;
end
X=X';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%
[B,num,AT]=my_reduct(X; %信息系统的约简
ind_A T=ind(X; %信息系统的不可等价关系
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%显示约简信息系统
disp('约简后的条件系统为:';
[m,n]=size(B;
for i=1:m
disp(B{i};
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %读取决策系统文件
file = textread('decision2.txt','%s','delimiter','\n','whitespace','';
[m,n]=size(file;
for i=1:m
words=strread(file{i},'%s','delimiter',' ';
words=words';
D{i}=words;
end
D=D';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%决策系统的正域约简
X_D=X;
[l,k]=size(X_D{1};
pos_d=pos(X_D,D;%正域
for i=1:m %%%%%%%%%%%%%%正域有问
题%%%%%%%%%%%%%%%%%%%%%%%%%%%
if(~ismember(num(i,pos_d
B{i}=''; %若约简后的信息系统B{i}不在正域中则删除该行
end %因为相同的条件得到的决策不一样,
end
%将在正域规则下约简过的信息系统B连接决策系统D
[m,n]=size(B;
for i=1:m
if(~isequal(B{i},''
B{i}{1,k+1}=D{i}{1};
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%显示约简决策系统
disp('约简后的决策系统为:';
[m,n]=size(B;
for i=1:m
disp(B{i};
end
--------------------------------------------------------------------------------
%%%%%my_reduct函数实现
function [C,num,reduct_attr]=my_reduct(X
%%%%%y为约简后的cell数组,reduct_attr为可约去的属性
%X为行向量(元素为胞元
clc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%约简
[m,n]=size(X;
[p,k]=size(X{1};
ind_A T=ind(X;%寻找不可等价关系
reduct_attr=[]; %可约去的的属性
num=zeros(m,1;%约简后的信息对应的个体
for i=1:k
B=delete_A T(X,i;
if(isequal(ind_A T,ind(B %若IND(AT-{a}=IND(A T
reduct_attr=union(reduct_attr,i; %则寻找到可约去的属性
X=B;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%剔除重复的行
k=1;
for i=1:m
if(~isequal(ind_A T{i},[]
C_i=ind_A T{i,1}(1;
num(k=i;
C{k,1}=X{C_i}; %返回约简后的信息系统
k=k+1;
end
end
--------------------------------------------------------------------------------
%%%%%ind函数实现
function
yy=ind(X %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%寻找不可分辨关系[m,n]=size(X;
k=1;
ind_A T=cell(m,1;
for i=1:m
for j=(i+1:m %潜在问题,如i=m是终止循环,此时若最后一行不为空的话,将漏扫if(~isequal(X{i},'' %若X{i}不为空
ind_A T{k}=union(ind_A T{k},i; %不可等价关系赋初值
if(isequal(X{i},X{j}
X{j}=''; %若X{i}==X{j},则删除X{j}
ind_A T{k}=union(ind_A T{k},j; %寻找不可等价关系
end
end
end
k=k+1;
end
--------------------------------------------------------------------------------
%%%delete_A T函数的源代码
function y=delete_AT(X,ATi % 删除X中第i列的属性值
[m,n]=size(X;
[l,k]=size(X{1};
for i=1:m
X{i}{A Ti}='';
end
y=X;
-------------------------------------------------------------------------------- %%%%%pos函数实现
function pos_d=pos(X,D%求决策系统的正域函数
%X为条件属性,D为决策属性
ind_D=ind(D; %求决策属性D的不可等价关系
[m,n]=size(ind_D;
ind_X=ind(X; %求信息系统属性X的不可等价关系
low=[]; %存储正域个体的编号
for i=1:m
for j=1:m
if(~isequal(ind_X{i},[]&&~isequal(ind_D{j},[]
if(ismember(ind_X{i},ind_D{j}
low=union(low,ind_X{i};%由性质Pos_A T(d=low_AT(X1Ulow_A T(X2U... end
end
end
end
pos_d=low;。