一种基于SQL用户自定义精度粗糙集属性约简算法.docVIP

一种基于SQL用户自定义精度粗糙集属性约简算法.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种基于SQL用户自定义精度粗糙集属性约简算法

一种基于SQL的用户自定义精度的粗糙集属性约简算法   摘 要:将数据库的关系运算运用于粗糙集的属性约简,引入用户自定义精度,改进基于SQL的属性约简算法。仿真实验结果表明,该方法与经典粗糙集相关方法相比,有更高的执行效率和抗噪性,为粗糙集理论更广泛地应用于海量数据的数据挖掘提供了一种方法。   关键词:粗糙集;SQL语言;属性约简   数据库系统具有存储空间利用率高、存取效率高等优点,如果将粗糙集理论中的决策表以关系数据库二维表的形式表示,通过将粗糙集理论中的相关算法嵌入到数据库管理系统中,实现对属性约简算法的改进。在标准SQL语言中,GROUP BY子句可将数据库中二维表的数据按某一列或多列的取值进行分组,值相等的为一组,该操作可对应粗糙集理论中划分等价类。而聚集函数COUNT(*)可统计每组所包含的记录个数,即为粗糙集理论中等价类所包含的对象数目。基于SQL的属性约简算法已有部分学者进行了研究。冯林和李天瑞[1]提出了用SQL语句求数据库中相对核属性、属性约简和值核的算法。田迪和刘建平[2]提出了基于SQL语言的条件信息熵属性约简算法。刘井莲[3]给出了一种基于SQL的属性约简算法,该算法是从条件属性集做递减,不需要存储中间结果,具有空间复杂度低的优点,同时易于改造成并行算法,能求出所有约简。但该算法缺乏对噪音数据的适应能力,不适应高速公路管理系统中海量数据的数据分析。下面将在讨论这种算法的基础上,提出一种由用户自定义精确度的基于SQL的属性约简算法。   1 理论基础   定义1:一个信息表的知识表达系统可以表示为四元组S=,其中,U是对象的有限集合,也称为论域;R=C∪D为属性的有限集合,C为条件属性的子集,D为决策属性的子集;是属性值的集合,Vr为属性r的值域;f:U×R→V为一个信息函数,U的任一元素取属性r在V中有唯一确定值。   如果U为一个论域,P为U上的一个属性集合,r∈P,且ind(P-r)=ind(P),则称属性r在P中是不必要的;否则,称r在P中是必要的。去掉不必要的属性不会改变属性集合的分类能力;反之,若去掉一个必要的属性,则一定会改变属性集合的分类能力。   定义2:设U为一个论域,P、Q为U上的两个属性集合,且Q为P的子集,若ind(Q)=ind(P)且Q中没有不必要的属性;则称Q是P的一个约简。如果Q是P的约简,则U中通过P可区分的对象,同样可以用Q来区分。通常P的简化不止一个,P的所有简化族记为RED(P)。   2 属性约简算法   算法1:判断ai是否为符合用户自定义精确度的不必要属性算法   输入:信息系统S=(U,A), accurate,ai。其中,accurate为用户输入的精确度,ai为需要判断的属性。   输出:1(表示该属性为不必要属性)或者0(表示该属性为必要属性)   Step 1:统计S中根据A-{ai}分组后,每组包含的记录个数,生成新表temp。方法如下:   SELECT COUNT( DISTINCT ai) AS NUM   into temp   FROM S   GROUP BY A-{ai}   Step 2:统计表temp中数值为1的记录个数占记录总数的比例Confidence。方法如下:   DECLARE @Confidence decimal(3,2),@ConCount int,@TotalCount int   SELECT @TotalCount=COUNT(*)   FROM temp   SELECT @ConCount=COUNT(*)   FROM temp   WHERE NUM=1   SELECT @ConCount   SET @Confidence=cast(@ConCount as decimal(3,2))/@TotalCount   SELECT @Confidence   Step 3:若Confidenceaccurate,输出1,否则,输出0。   由算法1可判断出ai是否为符合用户自定义精确度的不必要属性。如果ai为不必要属性,则继续从A-{ai}中寻找不必要属性,最终得到约简属性集。   算法2 基于SQL的用户自定义精确度的属性约简算法   输入:信息系统S=(U,A), accurate。其中,A=a1,a2,…,an为属性集,accurate为用户输入的精确度。   输出:A所有的属性约简。   Step 1:设初始约简的集合为red=??J,flag=0;   Step 2:如果in,转Step 5;   Step 3:i=i+1,转到Step 2;   Step 4:A=A-{ai},n=n-1,转Step 2;   S

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档