基于规则的方法(精选12篇)
基于规则的方法 篇1
0 引言
一个好的入侵检测系统拥有丰富的规则库,如果不对这些数量庞大的规则进行有效的组织和分类,则每捕获一个数据包就要遍历一次所有规则,这无疑会增大系统对每个数据包的处理时间,导致丢包。规则解析时数据结构的设计对系统效率和性能至关重要。基于如上分析,在本文中提出了一种基于三维规则链表的规则解析方法。
1 规则描述语言及编写规则
规则描述语言是用来描述规则的语言,规则能反映入侵行为的特征,一条规则对应一种入侵行为。当某个数据包满足某条规则描述的特征时,系统则认为检测到一个入侵事件并进行预警[1]。
在基于规则匹配的入侵检测系统中,规则描述语言设计是否合理、规则库是否丰富是衡量入侵检测系统性能的重要标准;本设计中采用类snort规则的规则描述语言[2~8],规则结构为:
规则:规则头(规则选项)
如一条规则范例:alert tcp 210.43.10 6.1/24 0:65535->192.168.1.0/24 80:80(content:”GET/default.ida?”;msg:"code red")
规则头:alert tcp 210.43.106.1/24 0:65 535->192.168.1.0/24 80:80
规则选项:(content:”GET/default.ida?”;msg:"code red")
2 规则头结构解析
以规则alert tcp 210.43.106.1/24 0:65535->192.168.1.0/24 80:80(content:”GET/default.ida?”;msg:"code red")为例对规则头进行解析:
规则头有固定的格式要求,是一个7元组,每个元组用空格隔开。
3 规则选项结构解析
以规则alert tcp 210.43.106.1/24 0:65535->192.168.1.0/24 80:80(content:”GET/def ault.ida?”;msg:"code red")为例对规则选项进行解析:
规则头后“()”内的部分为规则选项,一条规则可以有不同内容和数目的选项,规则选项构成了规则的核心,它能反应各种入侵事件的基本特征。一条规则选项由选项关键字和选项内容构成,其格式为:
选项关键字[:选项内容]
以(content:”GET/default.ida?”;msg:"code red")为例,共有两个选项,其中关键字content的内容为“GET/default.ida?”,关键字msg的内容为“code red”。
4 规则解析及三维链表的建立
4.1 规则文件插件
规则文件也用到了插件思想,一个入侵检测系统的规则库应当能够动态的扩充,以适应不断出现的新的攻击,这种动态扩充应当以不影响系统结构为前提,插件能满足这种要求。规则文件插件是通过构造一个文件名的链表实现的,系统在初始化时会调用init_rule_file_list()函数对规则文件链表进行初始化:
每次调用add_rule_file()函数都会将对应的规则文件名添加到规则文件链表中,当编写了新的规则文件,只需简单地调用add_rule_file()就可以实现规则库的扩充。
4.2 三维规则链表结构
本设计中采用三维链表的形式组织所有规则,将规则库中所有规则按类别添加到三维链表的相应位置,这种方法既可节省存储空间,又加快了对每个包的处理时间。三维链表结构如图1所示:
4.3 三维规则链表解析
三维链表的形成需要定义相应的数据结构,本小节将对这些数据结构进行详细介绍。图1中rule_list为规则链表头,指向三维链表的第一维。
其中rule_type为规则类型,系统支持两种类型的规则,即前文所述的alert和log,因此三维链表的第一维实际上只有两个结点。
Alert Fun和Log Fun为两个函数指针,分别指向报警函数alert_fun()和log_fun()(在respond.c中定义),当规则类型为log时,Alert Fun指针将被赋值为空;当检测到入侵事件时,两个函数会遍历第二个链表参数operfunlist,将报警信息在终端输出或写入日志文件,同时会根据命令行的参数(-s选项)判断是否让机箱发声预警。
其中Rule Node_t类型变量ip,tcp,udp,ic mp分别代表ip协议,tcp协议,udp协议和icmp协议,当对某条规则解析时,系统会根据规则头部的协议类型将该规则添加到不同的协议类型链表中(Rule Node_t类型,即三维链表的第二维);在对数据包检测时,只有当数据包满足相应的协议类型时,才会继续往下遍历三维链表,这样将有效节省检测时间。
c、Rule Node_t解析
在Protocol Node_t中定义的4个协议类型均为Rule Node_t类型,该结点用来描述规则头的信息,所构成的链表即三维链表的第二维,其结构为:
其中sip_not,dip_not用来标志规则头中IP地址前是否有!符号;
sip和dip分别存储规则中源IP地址和目标IP地址信息,如:
规则中IP地址为210.43.106.1/24,则链表中存字符串“210.43.106”
规则中IP地址为210.43.106.18/32,则链表中存字符串“210.43.106.18”
规则中IP地址为210.43.106.1/0,则链表中存字符串“any”
min_sport,max_sport及min_dport,max_dport存储源、目标端口范围的最小值和最大值
check_fun为一函数指针,指向函数check_packet(packet_t*packet,Rule Node_t*rn),用来检测当前数据包是否满足当前规则头。在对数据包进行检测时,如果此函数检测到当前数据包满足规则头,则继续往下遍历down链表(Rule Option Node_t类型,即三维链表的第三维),如果不满足则跳过当前Rule Node_t结点,继续往右处理下一个Rule Node_t结点,这样可有效地节省检测的时间
down为Rule Option Node_t类型的指针,向下指向规则选项链表
right为右指针,指向下一个Rule Nodt_t结点,用于构建当前链表
在构造第二维链表时,使用一个技巧:由于Rule Node_t是用来描述规则头信息,而在规则中存在很多规则头相同的规则。在解析规则时,当碰到新规则头与当前规则头结点的信息相同时,只需将新规则的选项内容添加到当前规则头结点的down链表中,不需要再另外开辟空间存储新规则头,这样可节省存储空间。
d、Rule Option Node_t解析
规则头结点的下指针down为Rule Option Node_t类型,该结构用来描述规则选项信息,它构成的链表即为三维链表的第三维,这是规则链表中最重要和复杂的结构,检测入侵的判断函数、规则选项内容等都附在该结点上,其结构定义:
其中opt_con_list为void类型的指针数组,用来存储规则选项中每个关键字对应的内容信息,比如,如果有规则选项msg:“codered”,则opt_con_list[OPT_TYPE_MSG]中将存储字符串“code red”;如果有规则选项dsize:20,则opt_con_list[OPT_TYPE_DSIZE]中将存储整数20,这些内容将在规则处理函数中使用。
fun_list为Oper Fun List_t类型指针,指向规则选项处理函数链表,Oper Fun List_t结构定义为:
其中fun为函数指针,指向与选项关键字对应的处理函数,em为预警信息;规则选项的每个关键字都有对应的处理函数(在本设计中,所有的处理函数均以FL开头)。
所谓处理函数,其功能是判断规则选项关键字的内容与数据包对应域的值是否相同,如果不同则返回0(即当前数据包不满足该规则选项),如果相同则需另作处理(下文介绍)。以规则选项dsize:20为例,关键字dsize对应的处理函数为FLdsize_equal(),其功能是判断packet中数据的净荷长度是否等于20,如果不等则返回0。
处理函数也用到了插件思想。规则解析时,每遇到一个规则选项关键字,系统在设置opt_con_list[]数组中对应的值后,同时会调用add_operate_fun()函数将对应的处理函数添加到fun_list链表中,这样,当系统需要添加新的规则选项关键字时,只需简单地调用add_operate_fun()就可实现。
以规则选项(content:”GET/default.i da?”;msg:"code red")为例,系统分析此规则后,将形成的链表结构如图2所示:
应注意的是,在示例规则选项中只有content和msg两个关键字,但在形成的fun_list链表中却有三个结点,为什么会多出一个结点呢?其实这正是本系统使用的一个技巧:在每个处理函数链表最后加上一个尾结点,尾结点的成员fun指向函数tail_fun,函数定义如下:
此函数总是返回1,这样处理的目的是为了使操作处理函数时更加方便:如前文所述,处理函数检测到当前数据包内容与选项内容不相同时会返回0,但当检测到数据包内容与选项内容相同时,所有的处理函数均会执行相同的动作(以dsize关键字对应的处理函数FLdsize_equal()为例):
即返回下一个结点中处理函数的值。这样,在入侵检测模块中检测数据包是否与当前规则选项匹配时,程序只需用如下语句进行判断即可:
e、Content Struct_t解析
Content Struct_t为存储选项关键字content相关信息的结构,其数据结构定义为:
Rule Option Node_t结构中,指针数组成员opt_con_list[OPT_TYPE_CONTENT]指向Rule Option N-ode_t类型的指针。由于一条规则中,关键字content可以出现多次,且它可以被nocase、offset和depth关键字修饰,所以在描述content关键字对应的内容时,不能简单地用一个字符指针或整形指针来描述,而需要用Rule Option Node_t类型的链表进行描述。以(content:”kill me”;nocase;de pth:20;content:”GET”;nocase;offset:10;depth:100)为例,规则选项结点中opt_con_list[OPT_TYPE_CONTENT]的值将是如下链表,如图3所示:
在程序中实现content搜索采用的是BM海量搜索算法,由于其不能区分大小写,所以实际上关键字nocase并无作用。
至此,三维规则链表已经建立完成,利用Libpcap捕获数据包后,就可以遍历此链表进行入侵检测了。
参考文献
[1]刘文涛.网络安全开发包详解[M].北京:电子工业出版社,2005.
[2]Kinage.Snort userguaid[EB/0L].(2005-11-10)[2006-03-12]http://blog.tianya.cn/blogger/post-show.asp?BlogID=154815&PostID=3192150&idW riter=0&Key=0.2005.11.
[3]snort 2.0 RULE OPTIMIZER[CP/OL].2003[2006-03-15]http://www.sourcelqre.con.
[4]snort 2.0 Hi-performance Muti-rule Inspe ction[CP/OL].2004[2006-03-15]http://www.sourcefire.con.
[5]snort 2.0 Detection Revisited[CP/OL].2004[2006-03-15]http://www.sourcefire.con.
[6]snort 2.0 Protocol Flow Analyzer[CP/OL].2004[2006-03-15]http://www.sourcefire.con.
[7]Roberto P.Alarm Clustering for Intrusion Detection Systems in Computer Networks[J].Engineering Application of Artificial In-telligence,2006,19(3):429-438.
[8]陈铁柱.Snort规则集优化[J].海军工程学院学报,2005,20(6):664-666.
基于规则的方法 篇2
1、切勿轻信他人
职场是一个利益交换的场所,品德好的人往往树敌众多,而“坏人”却顺风顺水。你可以不学坏人那样去害人,但至少要有保护自己的能力。别人要来害你,最简单的方式是利用你的善良,因为你总是轻信于人。而在职场中,信任往往应该有尺度。站在自己的立场上,守住应该有的利益,相信应该相信的话,这才能活得更好。
2、给上司预留指导空间
显规则告诉我们升职加薪需要自己努力工作靠真实才干获得,潜规则却说做事要多请示上司,功劳要想著分给上司一半,莫要埋没领导的支持和指导,因为很多时候他们可以掌握你的职场命运。
3、实力才是最坚固的基础
累积权力的基本功夫,是累积专业实力。否则,再花哨的政治艺术,也帮不上草包的忙。有实力的人只要能发挥智慧,在办公室的政治游戏中,你一定能优雅地来去自如,成为真正的职场明星。
女性怎么正确应对职场潜规则
1.注意自己的言行仪表
对于职场女生,想保护自己需要打扮但是不要穿暴露奇特得衣服,暴露奇特,男人是特别容易把注意力放到你身上,再加上如果知道你性子软弱,人家就会想就算是对你做了什么事你也不敢声张,就会做出对你不利的事!
2. 不要贪小便宜
这个社会并没有那么单纯,所以身在职场中的女生,不要贪小便宜,得到的都是需要付出代价的,天下没有免费的午餐,面对诱惑不要轻易放弃自己的道德底线,坚持维护自己的原则!
3.集中精力做一件有影响力的大事
千万不要还有女性都只能安安分分做些琐碎事的观念,虽然事大事小的工作本质上都是在为公司出力。(职场励志 )但做人人都能做的十件小事,都不如一件有影响力的大事。能做一件有影响力的大事表明你的无可代替性,表明你的能力不差于男性,只有这样,老板才会对你产生深刻的印象,获得升迁的机会。
4.做得多不如说得多
职场是非常现实的,做得多不如说得多,做得好不如说得好在职场里,有些人明明做了很多,却不懂表现,以至于没人知道,甚至功劳被人抢走,这种人就算累得半死也没人会同情,只有自己生闷气去了!
5. 正确的金钱观
在职场上混不是一件易事,长相漂亮一点的女生,不免会受到上司或老板的骚扰,女生要守身如玉,不要因为金钱而动摇底线,树立正确的金钱观,懂得拒绝!
1.如何应对职场中9个潜规则
2.应对职场小人的方法
3.职场生存潜规则
4.职场潜规则知多少
5.职场生存潜规则知多少
6.送给职场新人的10大职场潜规则
7.试用期职场潜规则
8.职场生存法则与潜规则
9.职场中的自然“潜规则”
基于关联规则的商品推荐系统 篇3
关键词:数据挖掘;关联规则;商品推荐
中图分类号:N37 文献标识码:A文章编号:1007-9599 (2010) 04-0000-02
Commodity Recommendation Based on Association Rules
Duan Wanxin
(Chengdu Science&Technology University,Information Engineering College,Chengdu 610059,China)
Abstract:The association rule is an important question inData mining, this article in the research association excavation foundation,carried on the analysis of old customer's transaction recording,established the association rules, provided the commodity recommendation to customers, thus provided the correct profit guidance for the electronic commerce website shop owner as well.
Keywords:Data mining;Association rule;Commodity recommendation
一、引言
电子商务是传统商务活动的一次重大革新,它以网络为平台,可使买卖双方不用谋面、异地的进行各种商贸活动,销售商可以在网上推销商品,消费者也可在网上购物,从而实现商务活动的网络化。由于其的方便、快捷和低成本,电子商务在全球范围内迅速发展。电子商务系统规模也越来越大,商品数目客户数目呈指数级增长。为了方便客户的购买,同时也提高销售量,商品推荐技术广泛应用于电子商务网站中,扮演传统商业中销售人员的角色。现有的推荐系统中,大多都是利用客户对不同商品的偏好,即利用协同过滤算法计算用户之间的相似度进行推荐。但与此同时,商品之间也是有关联的。本文就将主要探讨利用关联挖掘技术为客户提供商品推荐。
二、相关概念
电子商务网站都会用数据库保存每个客户的购物记录,伴随着电子商务的发展,数据库中的数据越来越多。而在这些错综复杂的数据中,包含着大量有用的信息。数据挖掘技术是汇聚数据库、统计学、机器学习等不同科学的交叉信息技术。它可以从大量的数据中提取出有用的令人们感兴趣的信息。关联规则的挖掘则是数据挖掘中的一个重要问题。
在电子商务网站,每个客户都会购买多样商品。那么,这些商品之间是否存在某种联系呢?如果存在,又会是一种什么样的联系呢?从直观上理解,如果一个客户购买了牛奶,他可能同时也会购买一个杯子。正因为商品之间存在着这种联系,我们可以根据客户已购买的商品记录向他推荐他可能还会购买的商品。
关联规则可以寻找在同一个事件中出现的不同项的相关性,比如在客户所购买不同商品之间的相关性。利用这些关联,就可以得到客户的购买特性,并根据发现的这些规律采取有效的行动。这对店铺的市场定位、商品的采购等决策问题都有重大的指导意义。同时,也能为商品推荐提供帮助。
关联规则的目标是在数据项目中找出所有的并发关系,这种关系也称为关联。关联规则有三个度量。支持度反映在交易数据中发现该规则的频繁程度,置信度说明当“如果”部分为真时“那么”部分也为真的频繁程度。比如牛奶→杯子规则,其支持度为15%表明15%的客户同时购买了牛奶和杯子,置信度为85%表明在所有购买牛奶的客户中,有85%的人也购买了杯子。而提升度反映在预测结果方面,规则比只是首先假设该结果会好多少,它是关于该规则工作情况的很好度量。这了挖掘出有意义的关联规则,一般都需要提供最小支持度和最小置信度。
关联规则挖掘问题可以分为两个子问题:
(一)找出事务数据库中所有大于等于用户指定的最小支持度的频繁项集
(二)利用频繁项集生成所有的关联规则,根据用户设定的最小置信度进行
取舍,最后得到强关联规则。
三、商品推荐过程
通过以上分析,该系统的具体实现主要可分为以下七个过程:
(一)获得商品交易数据。从交易数据库中提取用户的交易记录
(二)交易数据预处理。进行必要的数据处理,如使每项交易简化为只含有
购买项,从而给出哪些商品会与其他商品一起购买的信息等
(三)选择商品数据项集和层次。可根据商业的具体需要,选择感兴趣的数
据项
(四)生成规则。根据关联规则算法从(三)中所得有商品数据集中生成关
联规则
(五)规则分析。主要是根据提升度原则来评价分析所生成规则的工作情况
(六)把规则推荐模型安置在推荐系统中
(七)为特定客户生成推荐。主要是根据客户购物车和历史购物记录生成推
荐商品
基于关联规则的商品推荐系统的功能流程如下图所示。
四、算法分析
在关联规则的挖掘算法中,以Apriori算法最为著名,它是一种最为常用的关联规则挖掘算法。Apriori算法使用一个逐层搜索的迭代方法,它通过项目集元素数目不断增长来逐步完成频繁项目集的发现。首先产生1-频繁项集L1,再用L1用于找频繁2-频繁项集L2,直到不再能扩展频繁项集的元素数目而止。
Aprioir算法主要包含三个步骤:
(一)由频繁k-1项集通过自连接产生长度为k的候选项集
(二)对至少有一个非频繁子集的候选项进行剪枝
(三)扫描所有的事务来获得候选项集的支持度
但是,Apriori算法需要多次扫描数据库,以对候选项目集进行模式匹配,同时,它可能会产生规模庞大的候选集。为此,我们可以采用划分的方法,即先把数据库逻辑的分成几个块,每次只考虑其中的一个分块,对它生成所有的频繁项目集。接着再把所生成的频繁项目集进行合并,从而得到全局的频繁项目集。该改进方法可以只需扫描数据库两遍。第一遍对数据库进行分块,并应用Apriori算法对其生成局部的频繁项目集,并做为候选频繁项目集。在第二遍扫描中,通过计算每个候选频繁项目集的支持度,确定数据库的全局频繁项目集。
五、结束语
本文分析了一个基于关联规则的推荐系统。该系统利用数据挖掘技术对客户交易记录中的商品进行分析,从而为客户提供商品推荐。同时,该方法也可与基于客户相似性的推荐方法相结合,为客户提供更为个性化的推荐。
参考文献:
[1]朱玉全,杨鹤标,孙蕾.数据挖掘技术.东南大学出版社,2006,11
[2]朱明.数据挖掘.中国科技大学出版社,2008,11
基于规则的方法 篇4
在库存控制系统中, 由于存货项目(stock-keeping unit,SKU)数目繁多,为每种项目均设定个性化的控制策略(如安全库存、采购计划等)一般认为是不可行的。通常是将项目进行分类,同类项目采用统一的控制策略,这样才能在管理上成为可行。而在库存分类策略中,ABC分类法在很长时间内都是被广泛应用的分类方法。它是基于这样一个普遍事实的:即少数项目往往占据了多数金额(A类),而多数项目却仅占少数金额(C类),而管理者应该抓住主要问题,将有限精力更多的放在A类上。自从Silver发现了收入不均等后[1],ABC分析的原理已经为人们所共知。其算法是首先计算项目的金额占用,然后按照金额占用从大到小排序项目,再将排序分为三段,前一部分为A类(非常重要),中间为B类(一般重要),后面为C类(不重要),对于不同应用场合分类比例可能略有差异。
然而在实践上,传统的按照金额占用实施ABC分类还不能完全准确体现项目的重要性,往往还需根据经验或其它原因,如保存成本、供应不稳定、缺货影响等,将部分B、C类商品重新划分倒A类去。因此在评价标准上,金额占用已经不是唯一的,还有其它被忽略的重要方面,如文献[2]分析了其他一些被认为是同样重要的评价标准。也有一些文献认为应该采用多标准来评价库存分类,如文献[3]、[4]、[5]。
有关库存项目分类还有一个基础问题更值得研究, 即考虑项目之间的关联影响。单个项目的重要程度不仅来自于对项目自身评价, 同时还应该考虑它对其它项目的关联影响,如交叉销售效应的考虑等[6]。无论采用什么评价标准来评价个体商品项目, 它们之间的这种影响关系是不应该忽略的。Brijs等首先指出了交叉销售效应在库存项目评价中是应该重视的问题[7,8,9],并给出了一种称为PROFSET模型来计算项目间的交叉销售效应, 给出了一种0-1整数规划算法来选择最能反映客户购买意向的频繁项目集(frequent itemsets)。PROFSET模型的主要贡献是给出了计算频繁项目集的利润的方法,但它却没有考虑项目集的关联强度,而这对库存项目排序是很重要的,因为并不是项目集越大关联强度越强,其中还有支持度的问题。文献[10]给出了一种基于Hub-Authority的项目利润排序方法,采用了类似著名的Google搜索算法——网页排序算法HITS[11]来排序项目,以利润乘以可信度(profit*confidence)作为排序权重。但这种Hub-Authority排序方法只考虑了频繁项目集内部的排序,没有考虑多个频繁项目集之间以及与个体项目之间的混合排序问题。
尽管已经认识到了项目之间关联影响对于项目评价的重要性,但直到现在仍没有看到有相关的算法能够将这种重要性以定量的方式考虑进去。将数据挖掘技术应用于管理[12]是管理优化的一个发展趋势,本文将数据挖掘中的关联规则理论与技术应用与库存管理结合起来,以关联规则来考虑“交叉销售效应”在ABC分类中的体现,给出了新的基于关联规则的ABC分类算法。并通过算例表明了新ABC分类算法的有效率和功效,与传统的ABC分类算法作了对比,发现新ABC分类算法的计算结果与传统计算结果间存在着较大差异,这种差异正是交叉销售效应所必须考虑的,以弥补传统分类结果的经验调整。
2 新的ABC分类评价标准
ABC分类的一般方法,如文献[1]描述的,首先计算商品的年金额占用,然后按照金额占用从大到小排序,再将排序切为三段,前一部分为A类(非常重要),中间为B类(一般重要),后面为C类(不重要),不同的应用场合下分类比例可能略有差异。
然而考虑交叉销售效应时,虽然一些项目本身金额占用不高(可能属于B、C类),但是对其它高金额占用项目(A类)起着较关键的影响作用,这些小金额项目的缺货可能会造成较大的相关损失。研究的目的就是要将这些看起来不重要,但是由于交叉销售效应的影响,实际上是很重要的商品项目找出来。这就需要一种新的评价标准来评价项目的重要程度,将项目间的关联影响考虑在内。
这里应用关联规则来量化描述项目间的影响程度。基于“支持度-置信度”的关联规则理论[13]主要描述了交易数据库中这样的关联规则:
对于项目全集I={i1,i2,…,ik}以及交易集D,且任何X∈D均有X⊆I. 关联规则表示为这样一种形式:X⇒Y,其中X⊂I,Y⊂I且X∩Y=∅. 如果s%的交易包含X∪Y,那么称规则X⇒Y在交易集中具有s的支持度;如果包含X的交易集中有c%的交易同时也包含Y,那么称规则X⇒Y具有c%的置信度。关联规则挖掘的任务就是找出交易集D中所有支持度大于最小支持度(minsup)且置信度大于最小置信度(minconf)的关联规则。
发现关联规则的一个核心算法是搜寻频繁项目集,然后在此基础上产生关联规则。一个项目子集X⊂I是频繁项目集当且仅当其支持度大于给定的最小支持度。Agrawal和Srikant给出了目前广泛应用的频繁项目集的快速寻找算法[14],其支撑是频繁项目集的子集一定是频繁项目集这一基础定理。后来关于关联规则的研究都是围绕着算法效率改进的研究[15,16]。
利用上述的关联规则理论与技术,本文新给出一种称为“期望金额占用”(expected dollar-usage,EDU)的评价指标来评价库存项目的重要性。描述如下:
①对于一个项目集X⊆I,在交易集D中的支持度表示如下:
其中, X(t)={t|t∈D,X⊆t}是包含X的所有交易集。定义所有支持度大于s的项目集为频繁项目集。
②对于任一项目集X⊆I, X的金额占用表示为:
其中, CX是项目集X的金额占用, pi是X中单个项目的价值,
③对于任一项目x∈I,定义x的频繁项目集家族为包含x的所有频繁项目集,记为Fsx,表示最小支持度为s时,项目x的频繁项目集家族。对于所有X∈Fx,均有x∈X.
④对于任一项目x∈I,定义x的期望金额占用为:
其中, Cx为x的金额占用, CX为包含x的频繁项目集的金额占用, 其中的最大值作为项目x的期望金额占用。
因为商品项目x可能同时隶属于多个频繁项目集,其交叉销售效应受到多个频繁项目集的影响,这里仅将影响最大的金额占用定义为项目集x的期望金额占用。当x不属于任何频繁项目集,或者x自身金额占用大于其所属频繁项目集的金额占用时,以x的期望金额占用便退化为自身的金额占用。这样当不存在项目间的交叉销售现象时,按照项目的期望金额排序分类的方法便退化为传统的分类方法。
值得注意的是, x的期望金额占用并不一定是所属的最大频繁项目集。如项目集{A,B,C}的金额占用不一定比其子集{A,B}更大,因为后者的同时发生频繁度可能远大于前者,因而导致金额占用大于前者。因此,对于在项目x频繁项目集家族中,将金额占用最大频繁项目集称为核心频繁项目集,并认为它真正反映了客户的购买意愿,体现了x与其他项目之间的最大交叉销售效应的关联影响。
3 基于关联规则的ABC分类算法
3.1 新的ABC分类算法
前面我们定义了一种新的评价指标,即期望金额占用,来库存项目的重要度,主要增加了考虑项目间关联作用的影响。在此基础上,设计了新的库存ABC分类算法,算法主要步骤如下:
对于一定期间内发生的交易集:
步骤1: 计算频繁项目集。运用下一小节中给出的改进频繁项目集搜索算法,计算出交易集中所有的频繁项目集及其金额占用。
步骤2: 混合排序。将频繁项目集作为特殊项目,参与单个项目的按金额占用从大到小混合排序。再将频繁项目集在其排序位置还原为其成员项目,最后形成全部由项目组成的排序。
步骤3: 剔除重复项目。从排序前面向后稍描排列,对每一个库存项目均剔除其后面第二次重复出现的相同项目,最后形成所有项目仅有唯一位置的排序。
步骤4: 执行ABC分类。从排序前面向后划分为A类产品,直到A类产品的金额合计达到总金额的80%或项目数量达到总项目的20%;从排序后面向前划分C类产品,直到C类产品金额合计达到总金额的20%或项目数量达到总项目的80%.
3.2 改进的频繁项目集搜索算法
上一节的算法是将频繁项目集作为一个整体来排序, 但未实现对频繁项目集内部成员进行排序。本节将Apriori算法[14]稍做改进,使改进的算法在搜索频繁项目集的过程中增加频繁项目集的金额占用计算,同时实现频繁项目集内部排序。
设计了这样一种存储方式来存储频繁项目集或候选集:
<id,{items},length,{TIDs},support,DU>
其中, id是集合标识, {items}是项目集, length是项目个数, {TIDs}是包含{items}的交易集, support是交易集的个数, DU是金额占用。
算法中还定义了2个算子·
改进的Apriori算法仍然分为两部分:主算法和候选集产生算法:
(1)主算法:
(2)候选集产生算法:
4 算例计算
4.1 简单算例验证
为说明算法的计算过程,以文献[16]中的挖掘例子作原理展示。
项目集I={A,B,C,D,E},且单价为A=5, B=4, C=2, D=2, E=1。交易集D={1,2,3,4},如表1所示。按传统的ABC分类计算,项目的金额占用分别是A=10,B=12,C=6,D=2,E=3。项目排序应为(BACED)。
令最小支持度阀值minsup=2。根据新ABC分类算法的步骤1,应用改进Apriori算法计算出所有的频繁项目蒋。计算过程如表2。
再根据步骤2将频繁项目集和单个项目进行混合按金额占用排序,结果如下:
{BE}{BEC}{BC}{B}{A}{AC}{C}{CE}{E}{D}
再根据步骤3将频繁项目集在原位置替换为成员项目,得到{BEBECBCBAACCCEED},再从左到右扫描排序,保留第一次出现的项目,去掉第二次及以后重复项目,得到最终排序:
{BECAD}
可以看出,该排序结果和前面计算的传统ABC排序结果{BACED}具有较大的差异。在传统排序中,项目E是低金额的,排位靠后;但在新算法考虑关联规则的情况下,由于E与其他项目高金额项目,如B,具有关联规则,因而其期望金额较大,项目E的重要程度就得到了较大的提升,甚至超过了原来具有较大金额的A。对于E来说,其频繁项目集家族包括了{E},{BE},{CE}和{BEC}。尽管{BEC}的集合较大,但是其期望金额14却低于其子集{BE}的期望金额15。因而认为才是项目E相关的关键频繁项目集,反映E的关联价值。
4.2 实验数据计算
为了验证新ABC分类算法的有效性, 比较考虑关联规则效应情况下, 库存项目分类结果与传统ABC分类分类结果的差异程度,进行了如下实验数据的计算比较。数据库来自一个公开的benchmark数据库, 下载于http: //cucis.ece.northwestern.edu/projects/DMS/MineBench.html,选取了其中的数据库文件“data.ntrans100.tlen5.nitems1.npats2000.patlen2”,共有1000个项目,组成了96554个交易。原数据库没有交易金额,这里为所有项目在[1]间随机初始化了单价。
第一项实验计算:排序影响验证。对比传统ABC算法,在新算法下有多少数量的项目其排序权重(传统的是金额占用,新算法下是期望金额占用)会发生变化,从而导致排序位置发生变化。计算结果分别如图1所示,可以看出排序受影响的程度与最小支持度设置有着密切关系的。对于不同的最小支持度,有着接近10%~40%的项目的排序权重会发生变化。这表明受影响的项目比例是比较大的,由关联规则体现出的交叉销售效应影响的范围是比较广的。
第 二项实验计算:分类影响验证。对比新旧算法的分类结果差异。以A类为重点,计算在新算法下有多少原来不是A类的项目被强行提升为A类, 有多少原来是A类的项目却被挤出了A类。计算结果如图2所示, 曲线1表示了原来非A类项目被新算法强行提升为A类项目的数量与最小支持度的关系; 曲线2表示原来是A类的项目在新算法下被挤出了A类的数量与最小支持度的关 系。
第三项实验计算:寻找最适合的罪小支持度。从前面两项实验计算来看,不同最小支持度对计算结果的影响是很大的。那么怎样设定最小支持度才能最符合实际地反映交叉销售效应?是否每个项目均存在各自的最适合的最小支持度?这都是需通过计算回答的问题。目前已经有相关文献研究如何设置最小支持度,如文献[17]、[18]认为不同项目应该采用不同的标准来评价其重要程度,各个项目应该采用个性化的最小支持度。文献[18]还给出了一种按最大约束原则来逐层计算频繁项目集的最低支持度阀值,并给出了改进的Apriori算法。
在本文中期望金额占用是评价项目重要程度的关键指标,而项目的期望金额占用与人工指定的最小支持度相关的,可表示为函数依赖关系,即EDUx=fx(minsup)。因而,在最大化地考虑关联影响情况下,这里也给出一种最大化考虑关联影响的最小支持度阀值确定原则:使项目x具有最大期望金额占用的最小支持度为项目x的最小支持度阀值,即函数fx(minsup)取得极大值时所对应的minsup是项目x的最合适minsup。
在判断两个项目组成的项目集是否为频繁项目集的方法上,则采用与文献[18]一样的策略,取两个项目中最大的minsup作为集合的minsup,这种方法同样适合于判断项目集间的组合结果是否为新的频繁集。
在本次试验计算中,仅采用了遍历式搜索方法,使minsup从初值20以20为递增量到500,按照3.2节的算法,为每个项目搜寻最合适的最小支持度及对应的期望金额占用,搜索过程在CPU主频为1.6G的计算机上花费1.5个小时计算时间。再按各项目的最适合minsup计算新ABC分类算法,但3.2节的算法有3点调整:
①项目集存储格式增加一项minsup,即:
<id,{items},length,{TIDs},support,DU,minsup>
②候选集产生算法的第10)条后插入:
Cand.minsup=max{q.minsup,p.minsup}
③主算法的第4)条变更为:
Lk={c∈Ck|c.support≥c.minsup}
在上述基础上,对交易集实验数数据进行了ABC分类计算和比较。结果表明,1000条项目集中,有458条(占总项目的45.8%)项目的期望金额占用大于单个项目金额占用,这些项目的ABC分类排序位置也将受到影响。最终结果有86个(占总项目的8.6%)传统ABC分类方式下的非A类项目,由于关联规则的效应,被提升为A类项目。值得注意的是,这里我们不需要人工指定minsup,理论上对于任何给定的交易数据库,均可由算法自动发现“隐藏”于其中的、针对不同项目的最适合minsup,并以之发现频繁项目集,计算项目的期望金额占用。
5 结论与展望
本文将数据挖掘领域中的关联规则相关理论应用于考虑交叉销售效应的库存分类应用中,给出了基于关联规则的库存ABC分类方法,定义了一种“期望金额占用(EDU)”作为项目的重要度评价指标。简单算例和实验计算都表明,应用关联规则方法来考虑商品项目之间的相互影响,能够发现那些以前被忽略掉的(本身价值不高)、但是有重要影响(有较强关联规则)的项目找出来。并通过量化其重要程度(期望金额占用EDU),进行新的库存ABC分类定义,以配后后续的分类管理策略。本文的计算实验还表明,这种新的ABC分类结果与传统分类结果有着较大差异,相当比例的非A类项目需要重新评定为A类项目,这是库存控制中不应该被忽略的。
后续还有一些值得研究的相关内容,比如寻找高效率算法来搜寻项目的最适合minsup、考虑关联规则的缺货损失计算以及相应的订货策略变化等,这也是作者即将展开的研究内容。
基于关联规则的商品系统 篇5
关联规则是数据挖掘中的一个重要问题,本文在研究关联挖掘的基础上,通过对过去客户的交易记录进行分析,建立关联规则,为客户提供商品推荐,从而也为电子商务网站店主提供正确的.盈利导向.
作 者:段万新 Duan Wanxin 作者单位:成都理工大学信息工程学院,成都,610059 刊 名:计算机光盘软件与应用 英文刊名:COMPUTER CD SOFTWARE AND APPLICATIONS 年,卷(期): “”(4) 分类号:N37 关键词:数据挖掘 关联规刺 商品推荐
基于规则的方法 篇6
【关键词】妇产;阴道不规则出血;原因;治疗方法
【中图分类号】R-1 【文献标识码】B 【文章编号】1671-8801(2015)05-0189-01
阴道不规则出血的主要是阴道出血淋漓不尽、血性白带以及月经量过多,并且经期会延长。阴道不规则出血会对患者的生命健康造成一定的威胁,需要及时对症治疗,避免病情被延误[1]。此次研究主要分析妇产阴道不规则出血原因以及治疗策略,内容经整理报道如下:
1.资料与方法
1.1临床资料
择取在我院接受阴道不规则出血治疗的且于2014年1月-2015年4月期间入院的患者66例,按奇数、偶数诊疗的先后顺序分组,奇数则为参照组,而偶数则为研究组。参照组有33例,而研究组亦有33例。
其中,参照组中年龄在21岁至47岁之间,平均年龄为(29.43±5.36)岁。其中卵巢肿瘤、子宫颈癌、子宫内膜癌、子宫肌瘤、子宫内膜异位症、生殖器炎症出血、节育措施导致阴道不规则出血的患者分别有6例、4例、2例、6例、1例、5例、9例。
研究组中年龄在22岁至48岁之间,平均年龄为(29.21±5.77)岁。其中卵巢肿瘤、子宫颈癌、子宫内膜癌、子宫肌瘤、子宫内膜异位症、生殖器炎症出血、节育措施导致阴道不规则出血的患者分别有5例、5例、3例、5例、2例、4例、9例。
经统计学确认,组间阴道不规则出血患者其年龄结构、出血原因等基本临床资料对比后,P值在0.05以上。
1.2治疗方法
1.2.1参照组:对该组进行常规的清宫、止血、消炎治疗。
1.2.2研究组:对该组进行综合对症(针对病因)的治疗。首先,对其原发病进行积极治疗,针对患者的具体致病原因再采取对症治疗。
①使用孕激素内膜剥脱的方法进行治疗,此种方式适用于任何年龄段患者,一天8mg的甲地孕酮,或者是一天5mg的炔诺酮,连续口服治疗7天。
②使用雌激素内膜修复的方法进行止血治疗,此种方式针对年龄较小并且不能接受刮宫治疗而出血量又很大的患者较为适合。对患者进行2mg至4mg的苯甲酸雌二醇进行肌肉注射,1次/6h,止血之后,接着联合2.5mg至5mg的雌激素对患者进行口服治疗,1次/8h。
③使用内膜萎缩方法进行治疗,对患者进行炔诺酮的用药,一次2.5mg,1次/8h,每天服用MPA10-30mg,止血治疗目的实现之后,再对药量做减法;另外每天使用2片至3片的避孕药对患者进行治疗,一周之后,可以将药量减至一天一片,持续治疗21天之后可以停止用药。
所有患者进行药物治疗后,如果有需要,再决定是否对其进行清宫术治疗。
1.3观察指标
无效:表示阴道不规则出血症状没有改善,或者是有加重的情况。
好转:表示不规则出血的症状得到了一定的改善,患者自觉有了好转。
治愈:表示患者的经期时间、出血量恢复正常,阴道不规则出血的情况消失[2]。
1.4统计学处理
将参与此次研究的66例阴道不规则出血患者的相关情况数据,于此次研究结束之后,准确无误地录入进SPSS19.0软件中做数据处理分析,其中计数资料使用%表示,其对比方法是χ2检验;组间数据处理以95%作为可信区间,即当p值在0.05以下,可以表示此次实验研究的参照组和研究组之间治疗方式数据具有明显的差异,存在着统计学意义。
2.结果
研究组的治疗总有效率是96.97%,参照组仅为72.73%,组间比较,研究组的治疗方式更具有优势,p<0.05。详细的疗效数据参见表1:
3.讨论
阴道不规则出血是妇产科常见的临床疾病之一,阴道不规则出血不仅会影响患者的健康,也会给患者造成极大的心理压力[3]。此次研究发现,导致患者出现阴道不规则出血的原因有卵巢肿瘤、子宫颈癌、子宫内膜癌、子宫肌瘤、子宫内膜异位症、生殖器炎症、节育措施等。
(1)卵巢肿瘤:主要是因为卵巢瘤对卵巢组织产生破坏作用,而使得性激素不能正常分泌,最终导致内膜的不规则脱落引发出血。
(2)子宫颈癌:子宫颈癌出现出血的原因主要是接触性的阴道出血,通常都发生在性交之后[4]。
(3)子宫内膜癌:子宫内膜癌的临床表现之一就是阴道的异常出血,一旦合并了感染则会出现脓血与恶臭。
(4)子宫肌瘤:子宫肌瘤会导致患者出现月经周期缩短、经期时间延长、月经紊乱以及经量增多的情况,这也是阴道不规则出血常见的原因。
(5)子宫内膜异位症:子宫内膜异位症会导致患者的卵巢组织遭到破坏,同时引发内分泌的异常,进而导致阴道不规则出血。
(6)生殖器炎症:子宫炎症、阴道炎症、输卵管炎症等均会造成阴道的不规则出血。
(7)节育措施导致阴道不规则出血:此种情况一般都表现为点滴不规则出血,主要是因为节育器而导致的。
除了以上导致阴道不规则出血的原因,一些与妊娠相关的宫外孕、不全流产等均会造成阴道不规则出血的情况[5]。
此次研究中,研究组接受对症治疗,研究组的治疗总有效率是96.97%,参照组仅为72.73%,组间比较,研究组的治疗方式更具有优势,p<0.05。
总之,导致阴道不规则出血的原因有很多,由于病因的复杂性以及差异性,所以临床对阴道不规则出血患者进行治疗时应对症治疗,要针对患者的具体病因,进行详细的判断分析,然后给出相应的对症治疗方案。
参考文献:
[1]孟祥玉.浅谈妇产阴道不规则出血40例临床治疗与分析[J].青年时代,2015,65(1):65-65.
[2]程凌燕,闫秀春.阴道不规则出血的原因、临床表现及治疗分析[J].中外女性健康(下半月),2013,4(2):152.
[3]唐桂清.89例阴道不规则出血临床诊治分析[J].医药前沿,2014,4(30):171-172.
[4]吴金荣.浅析妇产阴道不规则出血临床治疗与分析[J].大观周刊,2013,3(13):390-390.
基于规则的方法 篇7
各国研究人员针对特征定位开展了广泛而深入的研究, 提出了静态、动态和基于文本的特征定位方法。其中, 由于动态方法具有比较高的查准率, 所以, 其被广泛应用于特征定位领域。1995年, Wilde提出了最早的动态特征定位方法——软件侦测技术。该方法关注获取特征与代码实体之间的特定追踪关系。对每个需要定位的特征设计两组测试用例, 一组测试用例的执行展示该特征, 而另外一组测试用例的执行不会涉及这个系统的特征。两组测试用例所对应的执行迹之差便是特征所对应的代码。程序切片技术可以应用于动态特征定位, 而程序切片是指影响程序中某个兴趣点变量取值的所有语句和控制谓词组成的一个程序子集。Wong、张迎周、徐宝文等学者基于程序切片技术提出了各自的程序理解方法。Eisenberg基于特征迹 (Dynamic Feature Traces) 方法进行特征定位研究。该方法赋予了执行迹中的成对调用关系一个权值, 利用这个权值确定了该执行迹属于某个程序特征的程度。此方法在3个Java系统上进行了测试, 结果表明, 该方法的效率比软件侦测效率高。Safyallah和Sartipi提出了一种将数据挖掘技术运用到执行迹抽取的方法。Bohnet等人提出了一种将执行信息可视化的技术, 依靠该技术可以完成观察特征的实现。刘奕明结合领域建模方法提出了一种基于本体的动态软件特征建模方法, 并给出了其元模型和基于推理的模型一致性验证方法。开发者可以对动态软件系统的业务逻辑共性、运行时业务逻辑的可变性和这些可变性之间的约束关系建模, 从而为动态软件系统提供高层次、抽象的软件演化业务逻辑视图。Eisenbarth等人基于概念格 (Concept Lattice) 进行了特征定位研究。该方法对场景、测试用例与代码实体间的二元关系进行了形式化的概念分析, 为其建立了一个概念格结构, 并将其可视化。
虽然各国学者从不同角度提出了动态特征定位方法, 但是, 当前的研究成果大多都着眼于建立用例与代码间的映射关系。然而, 任何一个用例都是由一个或多个软件功能组成的, 因此, 传统的动态特征定位方法无法实现软件功能与代码之间的映射关系。另外, 在进行特征定位时, 一个测试用例往往对应着大量的执行迹, 而现有的方法无法量化表示上述执行迹间的因果关系, 所以, 后续分析无从下手。
针对上述2个缺陷, 本文基于行为规则提出了动态特征定位方法。
1 方法综述
如图1所示, 本文采用的方法可以分为3个部分:1产生测试用例, 并收集程序执行迹;2生成行为规则集;3构造行为规则空间, 实现特征定位。
1.1 产生测试用例并收集程序执行迹
动态特征定位的基础是执行迹。执行迹的获取有以下4个步骤:1编写测试用例, 测试用例应覆盖软件的所有功能点或执行路径;2在源代码中, 设置检查点 (Check Point) , 用来观察程序运行时的状态信息, 并编译带有检查点的代码, 从而形成可执行文件;3执行测试用例, 观测并收集与测试用例相关的数据;4建立执行迹与测试用例之间的映射关系。
实现特征定位首先要生成测试用例。
定义1:有限非空集合U={u1, u2, …, un}, n∈N为一个测试用例集合。二元组ui= (IDi, BDi) 是一个测试用例, 其中, IDi定义为该测试用例的标示符, 有限非空集合BDi包含了对该测试用例的描述。
通过对含有检查点的可执行文件执行测试用例, 可以获取对应的执行迹。执行迹不仅是刻画程序运行时代码实体间消息传递关系的载体, 同时, 它还反映了程序功能单元的实现过程。
定义2:有限非空集合T={t1, t2, …, tn}, n∈N是程序的执行迹集合。其中, ti是与测试用例ui相对应的执行迹。
定义3:执行迹可以描述为一个三元组, 即ti= (Oi, <i, Ki) 。有限非空集合Oi是构成执行迹的对象集合;偏序关系<i刻画了对象之间消息传递的先后关系;自然数集Ki刻画了执行迹ti中各对象出现的次数。
当前, 有多种工具可以完成对执行迹的获取, 例如Flat3等。表1给出使用Flat31获取的一个执行迹片段示例。
1.2 行为规则集识别
定义4:有限集合BR ={ci→cj| ci, cj∈C }为行为规则集合。其中, 蕴含式ci→cj是一条行为规则, c1是行为规则的前件, c2是行为规则的后件。如果 , 则称为n元行为规则。
如果代码间的行为规则刻画了一个代码实体被调用的情况, 那么, 也就会呈现另一个代码实体被调用的事实。笔者认为, 行为规则可以刻画软件代码间存在的因果关系。
本节借鉴关联规则分析算法识别行为规则集, 可将其具体分为三部分, 即参数选定、对象出现次数离散化和行为规则生成算法构造。
1.2.1 参数选定
对于行为规则质量属性, 本文采用支持度和置信度2个参数来刻画。上述2个参数是对特征定位结果进行量化分析的基础。
定义5:一条行为规则r=X→Y的支持计数r.count是执行迹集合T中包含 (X∪Y) 的数目。
支持度定义了对象集合包含 (X∪Y) 的执行迹占执行迹集合T的百分比。支持度取值小, 表明该规则是偶然发生的规则。置信度刻画了对象集合, 既包含X又包含Y的执行迹数量占所有包含X执行迹的百分比。置信度决定了规则的可预测度。如果一条规则的置信度比较低, 则说明X被调用, 但并不一定会导致Y被调用。
设置合适的支持度和置信度参数取值, 它不仅是产生有效行为规则的基础, 同时, 也可以过滤那些与程序特征不相关的噪声事务, 从而实现对特征的精确定位。
1.2.2 对象出现次数离散化
根据定义3可知, 执行迹ti中的每一个对象被赋予一个自然数值, k∈Ki表示该对象在执行迹中出现的次数。k取值的大小决定了该对象在执行迹中的重要程度。然而, 在大规模程序行为规则生成的过程中, 如果将每一个对象和该对象对应的一个出现数取值k作为问题空间的一个维度, 那么, 将导致问题空间维度呈几何数增长, 使算法的效率变得很低。同时, k的取值是一个连续型实数, 而本文采用关联规则分析方法无法处理连续型数据。为了解决上述问题, 需要对出现数取值k作离散化处理, 即将出现数的取值空间转化为有限个小区间, 并赋予每一个区间一个离散值, 用这个离散值代表小区间内的所有出现数取值。
在过去的工作中, 出现数k的离散化工作大多依靠专家知识手工分类。对于大规模数据而言, 这显然是效率较低的做法。本文基于信息量建立了出现数的离散化方法, 力求通过该离散化算法使每一个数据区间中的信息量相等。
定义8:设X={x1, x2, …, xn}为一个出现数区间, 该出现数区间的信息量可定义为:
式 (1) 中:sum为程序中所有出现数的总和;ki为出现数xi在X中出现的次数。
出现数取值离散化算法伪代码描述如下:
算法1:出现数取值离散化算法
输入:程序执行迹集合T;
输出:出现数的离散化取值哈希表。
出现数取值离散化算法的步骤是:1统计每一个出现数的取值频率, 并将统计结果存储于哈希表SA中。其中, 键是出现数取值, 对应的值是出现数取值的概率。2对出现数取值依升序排序, 设该序列为S={a1, a2, …, an}。3设置分割区间数目m。4在集合S中, 随机选取m个点作为分割点集合Intervals={i1, i2, …, im}。该分割点集合将S序列分割成了m个区间, 每一个区间为Si={ai, ai+1, …, ak}, i≤k.5计算每一个区间的信息量IQ (Si) 。6如果任意两区间信息量之差趋于收敛, 则停止计算, 否则重复345步。
1.2.3 行为规则集识别
行为规则识别包含两部分, 即频繁类类集生成和行为规则生成。
定义9:一个频繁类集是支持度高于minsup的项目。本文称一个基数为k的频繁类集合。
频繁类生成过程是基于逐级搜索思想建立的, 采用多轮搜索方法, 每一轮都扫描执行迹集合T, 并最终生成所有的频繁类集。在获取频繁类集的基础上, 采用关联规则挖掘实现了行为规则的生成。
假设测试用例集合U={u1, u2, …, u6}对应的执行迹经过出现数离散化处理后, 其结果如表2所示。
当Support=60%、Conf=60%时, 经过算法1计算可产生如下计算结果:1-频繁集合={{c2}, {c4}, {c6}}, 2-频繁集合={{c2, c4}, {c2, c6}, {c4, c6}}, 3-频繁集合={{c2, c4, c6}}, 行为规则集合BS={c6→c4, c4→c6, c6→c2, c2→c6, c4→c2, c2→c4, c6→ (c2, c4) , c4→ (c2, c6) , c2→ (c4, c6) }, 各行为规则的置信度分别为{1.0, 0.67, 1.0, 0.67, 1.0, 1.0, 1.0, 0.67, 0.67}。
1.3 特征定位
特征定位一共包含两部分内容, 即构造行为规则空间和特征定位。
规则空间描述规则具有粒度上“大”和“小”, 层次上“高”和“低”的属性工具。为了刻画规则的粒度属性, 本文提出了规则空间。
定义12:设C={y|y是R的上界}, 如果C存在最小元min, 则称min是R的最小上界。
定义14:设C={y|y是R的下界}, 如果C存在最大元max, 则称max是R的最大下界。
基于以上概念, 规则空间生成算法将1.2.3节产生的规则集合BR作为输入, 通过明确规则间存在的子规则关系及规则集合BR的最小上界和最大下界, 实现对行为规则空间的构造
算法2:行为规则空间生成算法输入:规则集合R;
输出:行为规则空间BS。
行为规则空间生成算法的步骤是:1设n=|R|。2建立n×n的关系矩阵RM。在矩阵中, 每一位rmij的取值为1, 并且仅在第i条关系与第j条规则之间存在子规则关系, 否则取0.3建立关系集合E={<ri, rj>|, 在关系矩阵RM中, rmij取值为1}。4利用关系矩阵RM计算关系集合的最大下界max和最小上界min。
依赖于前面生成的特征空间, 依据置信度, 可以实现对特征空间包含规则集合的排序, 将规则集合中排序靠前的规则作为特征定位的结果。根据文献9可知, 将规则集合中排序前25%的规则作为特征定位的结果。
2 实验
2.1 实验过程
为了验证本文提出方法的有效性, 选择Eclipse3.0完成验证。Eclipse系统是一种开源软件, 利用Bugzilla可以获取实验所需要的测试用例描述、源代码和变更日志等资源。由于变更日志描述了Eclipse每一次演化活动中实际修改的代码集合, 所以, 可以将变更日志作为确定本文提出方法准确性的指标。
在实验过程中, 从Bugzilla中抽取了45个与演化活动相关的测试用例, 上述测试用例共涉及4 822个对象。通过反复的试验, 得出的结论将支持度supp设置为0.3、执行度conf设置为0.75为最优, 同时, 还统计了测试用例中各对象出现数的取值。根据统计可知, 出现数区间为[1, 245 561], 并且出现数分布如图2所示。其中, 纵轴代表出现数取值, 横轴代表出现数出现次数。
根据算法1, 将出现数进行离散化处理。其中, 分割区间数目取值为10, 其结果如表3所示。
利用运行算法3共获取了645条规则。
如图3所示, 根据算法4, 可获得规则集合BR对应的规则空间。图3中每一个节点对应一条规则, 两点间的有向连线表示两节点之间存在子规则关系。
2.2 实验结果
分析了Eclipse3.0系统后, 将支持度和置信度2个参数分别置为0.3和0.7后, 可以产生645条规则, 并且通过规则空间构造和规则注释算法建立了规则空间, 实现了对Eclipse3.0特征的层次化理解。同时, 由对比变更日志可知, 本文方法平均准确率为34.33%, 比传统动态分析方法高了12.3%.
3 总结
本文建立了特征定位的量化分析方法, Eclipse3.0完成了相关实验后, 结果显示, 本文提出的方法比传统动态特征定位方法的准确率更高, 而且能量化代码间的因果关系。在未来的工作中, 需改进和细化现有的概念和方法, 提升基于规则的程序特征定位方法的性能。此外, 现有设计中还存在一些需要改进的地方, 例如参数选择过分依赖专家知识, 需要对这一部分作进一步优化, 进一步提高规则注释的精确度。
参考文献
[1]Yingzhou, Z., X.Baowen.An Approach to Dynamic Program Slicing Based on Modular Monadic Semantics[J].Chinese Journal of Computers, 2006, 29 (4) :526-533.
基于规则的方法 篇8
关键词:目标识别,冲突证据,比例冲突再分配
0 引言
目标识别又称身份融合,是信息融合中饱含生命力的一个重要内容。目标识别不仅是战场态势与威胁估计的基础,也是战场决策的重要依据。在“发现即消灭”的现代战争中,目标识别重要性不言而喻。
目前基于DS理论的规则在目标识别中应用较多,但在证据发生高冲突情况下证据合成会产生与直觉相反的结论[1]。如何在证据高度冲突下实现多源信息的有效融合是一个迫切需要解决的问题。许多专家认为这是组合规则造成的并加以改进[2],但是效果不是十分理想。针对这种情况,Dezert和Smarandache等学者在2002年提出了DSmT[3,4]。比例冲突再分配规则是Dezert和Smarandanche在DSmT的基础上提出的证据组合规则[5,6]。比例冲突再分配规则是处理高冲突证据的一种有效方法。由此,本文将比例冲突再分配规则引入目标识别,并通过仿真进行验证分析。
1 比例冲突再分配系列规则介绍
比例冲突再分配规则是将冲突信度按照一定的比例关系分配到非空集部分中。PCR规则的计算过程可以分为三步:(1)按照合取规则计算合成后的信度;(2)计算部分和全部的冲突信度;(3)按照不同的比例关系分配冲突信度到非空集部分。比例冲突再分配规则是将冲突信度按照某种比例分派到合成信度上,从而更有效地利用证据。根据分派比例的不同,PCR规则分为PCR1至PCR6规则。PCR规则可以使用在DSmT下,也可以使用在DST下。下面依次对PCR1至PCR5系列规则进行简单介绍,对PCR6规则进行比较详细的分析[7,8,9,10]。
1.1 PCR1-PCR5系列规则
PCR1、PCR2规则是对全局冲突信度进行重分配,而PCR3至PCR5规则是对部分冲突进行重分配。考虑重分配的比例时,PCR1至PCR3规则是对不同信息源的部分冲突之和进行分配,PCR4、PCR5规则是考虑合成规则的结果。合成两个证据时,从PCR1至PCR5规则,规则的计算量和对冲突进行重分配的精确度逐渐升高。另外,除了PCR1规则,所有的规则都保持了空信度的合成后对结果的中立影响。
1.2 PCR6规则
PCR6规则是由Arnand Martin和Christople Osswald提出来的,对PCR5规则的一种改进规则。PCR6规则是一种局部冲突局部分配的方法,认为冲突的产生与多个信息源都有关系,它将每次合成后产生的冲突信息按照每个信息源的单焦元的信度进行再分配,但是分配时只考虑了冲突涉及的焦元,分配时将局部冲突分解成部分冲突依次分配指派。PCR6规则被定义为∀(X≠ϕ)∈GΘ,M表示信息源个数
其中,Yj∈GΘ对应信息源j;mi(Yj)是其相关的信度函数;σi表示从1到M的数中排除i,即
PCR6规则处理多个证据合成时比PCR5规则有更符合直觉的结果,当处理两个信息源时,PCR6规则和PCR5规则是一致的。但PCR6规则在计算分派比例时,不像PCR5规则那样要计算证据的合成,而是采取证据间的求和形式,所以在处理多个证据的合成时PCR6规则比PCR5规则计算量小得多,适合在对计算量比较敏感的实时系统中使用。目前已有实用的目标识别系统中采用PCR6规则[11,12]。
2 目标识别步骤
利用PCR6规则,可以对不同信息源提供的证据进行融合判决,即所谓的空间域判决融合;也可以对每一个信息源在不同时刻得到的证据进行融合,即所谓的时间域判决融合。
基于PCR6规则的目标身份识别的步骤如下:
Step 1:定义辨识框架。将可能出现的命题加入辨识框架。
Step 2:获取基本信度分配。基本信度分配表示了信息源对目标身份假设的可信程度的一种推理,这种判断受各种因素的影响,不同的先验知识会构成不同的基本信度分配。
Step 3:使用适合的融合规则对基本信度分配进行合成。根据待识别目标特点和信息源的特点需要选用恰当的合成方法。本文选用了PCR6规则。
Step 4:确定目标身份识别的决策规则。得到合成信度后要选择适合目标身份识别的决策规则。决策规则可分为以下几种:判定的目标身份应具有最大的合成信度;判定的目标身份的合成信度与其他身份的合成信度的差必须大于某一阈值(如为0.1);判定的目标身份的合成信度必须大于不确定性的合成信度;不确定性合成信度必须小于某一阈值(如0.5)。
3 仿真分析
为了验证比例冲突再分配规则应用于目标身份识别中的有效性,下面给出了几个目标身份识别的实例,其中有多个信息源同时对一个目标进行探测和监视,并给出了对该目标的基本信度分配,然后使用多种合成方法来对信息源得到的信息进行合成,通过结果分析各种合成方法的目标身份识别效果。
算例背景:假设目标身份识别系统中有个信息源,这些信息源主要有:对空警戒雷达两部(mR1、mR2)、机载预警雷达一部(mAR)、电子支援措施一部(mESM)、光电传感器一部(mEO)。
空中目标可能属性为我机(F)、敌机(H)、属性不明(N)。
主要对比的方法有:Dempster合成规则、Yager合成规则、孙全合成规则、PCR6规则。
3.1 算例1——高冲突算例
假设已知目标为我机(F),使用全部5个信息源对目标进行探测。模型为Shafer模型,空中目标可能为{F, H, N}三个类别,在某时刻获得的基本信度分配如表1所示。
各种方法对高冲突证据的识别结果如表2所示。
3.2 算例2——低冲突算例
假设已知目标为我机(F),使用全部5个信息源对目标进行探测。模型为Shafer模型,空中目标可能为{F, H, N}三个类别,在某时刻获得的基本信度分配如表3所示。
各种方法对低冲突证据的合成识别结果如表4所示。
3.3 分析
在高冲突例子中,Dempster合成规则得出了与直觉相悖的结果,将目标身份判定为敌机,并且第2条证据具有“一票否决权”,再多的证据支持我机都被否决,Dempster合成规则无法处理高冲突证据Yager合成规则将冲突部分分配到未知集中,这虽然不会得到无法表示的结果,但是遇到全冲突证据时会将所有信度分配到未知集合或空集合,当新证据到来时结果不再变化,即当有全冲突证据时Yager合成规则对证据的理解没有帮助。孙全合成规则加入了证据可信度,能够处理全冲突证据,但仍有很大一部分信度分配给未知集合。PCR6合成规则得到合理的合成结果,排除了“错误”证据的影响,说明了其在处理高冲突证据时的有效性。
而在低冲突例子中,Dempster合成规则在处理低冲突证据时效果非常理想,对我机的支持度达到0.98406,Dempster合成规则非常适合低冲突证据的合成。Yager合成规则有大量信度分配给未知集(0.93083)或空集(0.93083),而孙全合成规则也有0.39727分配给未知集。而PCR6合成规则对我机的支持度为0.78146,也得到了正确的识别结果。
4 结束语
在目标识别中,比例冲突再分配规则对于高冲突证据下的识别是有效和可行的,随着方法的不断改进,PCR6规则在处理大量证据的合成时比PCR5规则在计算量上有优势,更适应实时性系统的要求。可见,比例冲突再分配方法有着很好的发展空间和广阔应用领域。但是,PCR6规则在在处理大量证据的合成时计算量还是比较大,是下一步研究和改进的方向。
参考文献
[1]Zedeh L A.Review of Shafer's“A mathematical theory of evidence”[J].AI Magazine,1984,5(3):81-83.
[2]尹慧琳,王磊.D-S证据推理改进方法综述[J].计算机工程与应用,2005,41(27):22-24.
[3]Dezert J.Foundations for a new theory of Plausible and Paradoxicalreasoning[J].Information and Security Journal,2002,12(1):26-30.
[4]Smarandache F,Dezert J.An introduction to DSm Theory of Plausi-ble,Paradoxist,Uncertain,and Imprecise Reasoning for InformationFusion[J].Octogon Mathematical Magazine,2007,15(2):681-722.
[5]Smarandache F,Dezert J.Proportional Conflict Redistribution for In-formation Fusion[M]//Smarandache F,Dezert J.Advances andApplications of DSmT for Information Fusion(Collected Works).American Research Press,Rehoboth,2006,Ⅱ:3-66.
[6]Smarandache F,Dezert J.Information Fusion Based on New Propor-tional Conflict Redistribution Rules[C].Information Fusion,20058th International Conference on.Philadelphia,PA,USA,2005,2:25-28.
[7]Smarandache F,Dezert J.A simple Proportional Conflict Redistribu-tion Rule[J].International Journal of Applied Mathematics and Sta-tistic,2005,3(5):1-36.
[8]李新德,黄心汉,Jean Dezert.基于ESMS过滤器的信息融合理论研究及SLAM应用[J].计算机科学,2006,33(12):117-121.
[9]Martin A,Osswald C.A new generalization of the proportional con-flict redistribution rule stable in terms of decision[M]//Smaran-dache F,Dezert J Advances and Applications of DSmT for Informa-tion Fusion(Collected Works).American Research Press,Reho-both,2006,Ⅱ:69-88.
[10]Dambreville F.Modeling evidence fusion rules by means of refereefunctions[C].Information Fusion,2009.FUSION'09.12th Inter-national Conference on.Seattle,USA,2009:1226-1233.
[11]Norden W,Bolderheij F,Jonker C.Combining System and UserBelief on Classification Using the DSmT Combination Rule[C].In-formation Fusion,2008 11th International Conference on.Cologne,Germany,2008:1-8.
基于规则的方法 篇9
1 网络入侵检测技术
在计算机的防入侵系统中,计算机的入侵检测技术可以说是防火墙的坚实后盾,这一技术对计算机的安全防护具有重要的意义。在以往的入侵检测技术中,传统的入侵检测方法对与其模式特征相匹配的入侵方式具有较为灵敏的检测度,检测的准确性较高。但是,相对于未知类型的入侵而言,这一检测方法就表现出较大的缺陷。对计算机入侵检测的研究是从上个世纪80年代开始的,并逐渐成为了人们研究的重点内容。目前,使用的最为广泛的入侵检测技术仍然是与传统的入侵模式相匹配的检测技术。这种方法的检测准确性较高,但在飞速发展的计算机技术中,针对于新的入侵方法的检测技术还有待更新。本文中将针对于关联规则进行入侵技术的研究。
2 关联规则算法
关联规则是指,从现有的数据中挖掘各种数据之间的关系,这一关联规则的提出是在上世纪,并且在当时的商业系统中有所应用,这一规则的提出和应用为其以后的发展奠定了基础。关联规则的定义有以下的几种类型:关联规则可以用一个集合的形式来表示,例如:假设有一个集合M{m1,m2……mn},M是一个含有数据项的集合,称为项集。若集合N是一个数据事务集合,任意一个数据集合都含有数据事物A,并且每个A都有独特的标志,这个标志就是ITD标识。集合A真包含于集合M,其中的项集也真含于M,并且各项集无交集,这样就可以得到各项集之间的关联规则。在计算机入侵检测系统中引入关联规则是为了找出各个数据之间的关系,同时也是对集合与集合之间进行区分的一种方式。
在关联规则中,还涉及一个支持度,简单来说,支持度是指集合N其中所包含的各项集的事物数与集合N之间的比值,换句话说就是各项集在集合N中出现的概率。
在关联规则中还有一个十分重要的概念就是置信度。关联规则中的置信度和概率论中所说的置信度概念相近。关联规则中的置信度也可以用条件概率符号表示。
3 关联规则在计算机入侵检测中的应用
3.1 基于关联规则的入侵检测体系结构的建立
现在使用的较为广泛的入侵检测系统是在关联规则的基础上建立的,这一系统的实现可以通过检测模型的构建来实现,这一模型的主要的工作过程如下:首先,这一模型需要从网络环境中进行数据收集,接下来对收集到的数据进行干预处理,随后将处理过的数据进行转移,将它们放到数据库中,然后利用入侵检测模型对这些数据进行相应的入侵检测和行为判断。如果检测系统能够准确地将这些数据判断为入侵行为,系统就会直接进行下一步的入侵处理,如果这一模型不能够将其检测为入侵行为,则需要对这些数据进行详细的记录,以便于日后的处理,其模型如图1与图2所示。
3.2 基于关联规则入侵检测系统地运行
上文对基于关联规则建立的入侵检测系统模型进行了详细的介绍,下面将对这一模型的入侵检测系统的运行方式进行详细的介绍,它的运行过程中涉及的模块主要有数据采集模块、数据处理模块、AFP检测代理模块以及决策相应模块等几部分。
数据采集模块进行的主要是数据采集的工作,换句话说就是,在入侵检测系统收集到的众多信息中,数据采集模块会对其中具有用户行为代表性的数据信息进行筛选,例如,系统会根据用户对某一网页的浏览次数或者是某类信息的关注程度对这类信息进行筛选,而用户涉及较少的信息内容则可以不进行关注。入侵检测系统中进行的数据采集过程是依托于计算机强大的数据支持,因此,只要信息收集过程中收集到的数据足够准确、可靠,并且信息的来源范围足够广,相关入侵行为在计算机中被检测出的可能性就越高。
数据处理模块是对入侵检测系统中采集模块采集到的数据进行处理的地方。在数据采集的过程中,由于信息量较大且来源广泛,因此采集到的数据可能会存在不完整、繁冗或是相关性差等特点,因此,这些数据需要在数据预处理模块中进行加工处理。数据的预处理模块会对原始数据中不完整的部分进行补充,对与系统中的关联规则无关的数据进行清除,然后将上述处理过的数据放到数据库中进行储存,然后将处理好的数据向下一模块传递。
AFP检测模块主要是接收来自于预处理模块的数据并对其进行进一步的处理,首先,AFP模块会根据这些数据的类型以及用途将其分为两个集合,一个是训练集,另一个是测试集。对于被分配到训练集中的数据来说,系统会对其进行关联规则的挖掘,以便于对其中的不同来源、不同属性的数据进行分类,而归属到测试集中的数据则需要与规则库中的规则数据进行相应的比对,从而有效的判断出这一数据是否为入侵行为,被判断为入侵行为的数据需要接受下一环节步骤的处理。
对入侵行为进行处理的环节就是我们所说的决策响应环节,这一环节是对关联规则模块挖掘出的规则,在相关系统的配合和指导下进行入侵行为检测。我们可以将系统响应的方式分为主动和被动两种,如果系统中的响应模块无法准确的判定入侵行为,则需要将这一情况报告给计算机的安全员,由人为进行干预处理,具体的处理方式由安全员进行判断。
4 入侵检测发展趋势展望
在现代计算机技术的发展中,每天的网络数据是十分庞大的。随着现代化的基于数据挖掘技术的操作系统日益的复杂,现阶段的网络流量数据也非常的大,对数据的审计速度也有了一定的提高。对系统中出现的异常程序和存在的入侵行为进行准确地分辨并将结果快速的传输到处理器中,是今后对计算机网络技术开发中需要高度关注的问题。今后,数据挖掘中的关联规则在计算机中的应用将有助于对用户特征进行识别,并对用户的安全性进行一定的记录,在今后的安全事件中进行自动识别。
5 结语
综上所述,计算机网络在人们的生活中有了越来越高的地位,因此,入侵检测方法也应该朝着多样化的方向发展。就入侵检测技术的发展现状而言,对于入侵检测技术并没有一个统一的安全性能评价标准,目前所开发的各种检测方法和产品中也都存在着一定的缺陷。所以说,在关联规则基础上建立的全面的入侵检测方法是计算机入侵检测技术发展的一个重要方向。
摘要:当今社会中,计算机网络技术成为了人们生活中必不可少的一部分,因此,网络环境的安全问题也逐渐成为人民群众最为关心的问题。随着人们对计算机的使用越来越频繁,计算机暴露的问题也越来越多,计算机中针对于传统入侵方式的检测技术已经不能够满足现代社会的需求,因此,如何有效地进行入侵检测并及时的控制,是计算机技术发展的重点。对此,本文将结合入侵检测技术的发展现状和趋势,对关联规则基础上的计算机入侵检测方法进行介绍。
关键词:关联规则,计算机,入侵检测
参考文献
[1]林涵.基于关联规则的计算机入侵检测方法[J].经贸实践,2015(11):176.
[2]侯君华.基于关联规则的计算机入侵检测方法[J].才智,2014(10):341.
[3]杜旭光.基于多维关联规则的入侵检测方法研究[D].燕山大学,2014.
[4]高苗粉.入侵检测方法的研究现状[J].电脑知识与技术,2013(33):12.
基于规则的方法 篇10
随着物联网的不断发展,人们对智能家居的研究越来越深入[1]。智能家居设备的多样性和服务对象的个性化增加了家居系统建模的困难,目前的智能家居服务活动需要人的参与,由于用户习惯的分散性和主观性,在很多情况下无法使用预定义的智能空间控制模式。现有的智能家居系统都没有实现智能服务的有效个性化[2]。本文探讨了一种基于粗糙集的规则提取与驱动模型,来自学习智能家居中的规则。
粗糙集理论是由波兰学者Pawlak在1982年提出的[3]一种刻画不完整和不确定性信息的数学工具,能有效地分析和处理不精确、不一致、不完整等各种不完备的信息,并从中发现隐含的知识,揭示潜在的规律[4]。目前,粗糙集已经在模式识别、知识发现与机器学习、决策支持、数据挖掘等许多科学与工程领域得到了成功的应用,不少学者将其用于医疗信息处理[5]、汽车数据采集[6]、感性规则挖掘[7]等领域。
由于不需要先验知识,粗糙集很适合智能家局的规则提取。为了提高智能控制的效率,增强规则之间的数据共享,智能家居的知识规则应遵循最简原则。粗糙集分为属性约简和属性值约简,属性约简的目的就是得到能够区分样本的最小的属性子集。
1 状态驱动的异构智能家居系统平台
智能家居由传感和控制终端组成的外围系统和服务中心组成。由于智能家居系统中存在多种控制协议,具有很强的异构性[8],本文的智能家居中采用中间件的形式分离底层硬件和上层应用。智能家居的系统结构如图1所示。
其中,不同通信介质和通信协议的设备通过适配层,接入到家庭状态信息总线中,转换为设备状态队列。各个设备根据总线中要求的设备状态值做相应的控制动作。
智能控制系统检查设备的状态请求信息和环境信息。当系统发现设备状态请求信息发生变化时,通过中间件请求物理设备操作,以同步设备状态保证设备状态和设备状态信息的一致性,进而实现基于设备状态驱动的智能家居控制,依靠状态驱动的架构,能够与状态队列有很好的结合,免去设备同时被多个操作源操作而产生的冲突;当系统发现环境状态信息发生变化时,将信息输入到规则引擎Drools中去,以实现规则驱动的设备控制。
Drools是用Java语言编写的开放源码规则引擎,使用Rete算法对所编写的规则求值。Drools允许使用声明方式表达业务逻辑。可以使用非XML的本地语言编写规则,从而便于学习和理解。并且,还可以将Java代码直接嵌入到规则文件中[9]。
当设备状态发生变化时,系统会把当前所有感知设备状态和受控设备的状态变化写入历史数据库。随着用户在智能环境中生活时间的增加,会产生大量家居空间状态数据,为系统能够自动学习用户的行为模式提供数据来源。每一条记录都会被作为粗糙集的一个决策记录,参与到知识约简中。
2 基于粗糙集的规则提取系统
为了有较好的用户体验,系统不应主动请求用户干预,而应该在后台静默运行,从用户的行为中觉察其个性与喜好。因此,智能家居中环境与设备的状态成为规则提取的主要来源。
在智能家居空间中,感知信息由多个环境状态组合而成,例如S={温度,湿度,亮度,音量,烟雾浓度,空气质量}。面对复杂的环境,智能家居中的用户可能会要求不同的处理方法。例如,用户可能在温度较高的情况下打开窗户或者空调,或者并采取任何措施,这可能取决于室内的湿度、亮度等环境因素和用户自身的耐热程度和用户对节电的渴望等心理因素。
为了能够更好地适应智能空间中用户的需求,需要对这些感知信息进行综合考量,挖掘其中的潜在联系,提取规则。用户的历史数据可以看作最初的规则集,由于家居环境中设备种类多,信息量大,会产生噪声属性信息,影响系统运行,需要使用粗糙集理论能够剔除数据集中的冗余属性和数据,实现智能家居规则的动态生成。
2.1 粗糙集的相关定义
粗糙集可以从大量的数据中挖掘潜在的、有利用价值的知识,它与概率方法、模糊集方法和证据理论方法等其他处理不确定性问题理论的最显著区别在于:其无需提供问题所需处理的数据集合之外的任何先验信息,因此无需人为制定隶属度或隶属度函数,从而避免了主观因素的影响[10]。粗糙集相关定义如下:
定义1设U={x1,x2,...,xn}为论域,A={a1,a2,...,am}为属性集,R为U上的等价关系,[X]R表示包含元素X∈U的R的等价类,K=(U,R)为知识库。若P⊆R且P≠∅,⋂P(P中所有等价关系的交集)也是一个等价关系,称为P上不可区分关系,记为IND(P)。
定义2在一族等价关系R中,r∈R,如果IND(R)=IND(R-{r})IND(R)=IND(R-{r}),则称r为R中不必要的,否则称r为R中必要的。如果每个r∈R都为R中必要的,则称R为独立的。设Q⊆P,如果Q是独立的,且IND(Q)=IND(P),则称Q为P的一个约减,P中所有必要关系的集合称为P的核,记为CORE(P)。核与约减的关系可以表示为:CORE(P)=⋂RED(P),其中RED(P)表示P的所有约减。
定义3在信息表T=(U,A)中,U为对象集,A=C⋃D,C为一系列的条件属性,D为决策属性,集合D引入分区将U分成不同的决策类。
最终的决策规则则体现了知识的表现形式,其表示方法为A→B,其中A为规则前件,B为规则后件,是对决策属性d的描述。选择粗糙集理论规则提取即利用粗糙集对历史记录进行化简的过程。
2.2 粗糙集信息系统
系统的条件属性记录来自系统的感知器信息,决策属性来自设备状态变化时的状态值,为了离散化状态信息,需要先把状态值聚类为符合状态物理属性的值,并对每个分类进行正态分布拟合;同时把设备操作值变换成设备状态变化值。对系统粗糙集矩阵建立如下:
其中:C,D分别表示条件属性和决策属性;C1,C2,...,Cn表示条件属性(环境状态)的n个维度;{c}i表示第i维属性中的某个类的分类值;D1,D2,...,Dm表示动作语义(执行器状态)的m个分量;di表示某个环境语义分量取值,只能取di∈{0,1},分别对应环境语义的正向、逆向(例如:温度的上升和下降)。
由于感知信息的n个维度并不是相互独立的,而且存在着大量的冗余的,不确定的信息,属性约减就是要去掉这些对决策属性没有影响的冗余的条件属性维度,精简决策规则。
由于粗糙集一般只适用于一个决策属性的情况,而在这里建立的粗糙集拥有m个决策属性,所以在这里将一行中决策属性的不同组合作为决策属性的分类,即D=d1d2...dm,于是RS只有一个决策属性,可以使用一般的粗糙集约减步骤来处理。
2.3 算法过程
首先要去掉无关属性,属性约简算法步骤如下:
输入:条件属性集合C={C1,C2,...,Cn},决策属性为D。
输出:约减后的属性集合RED(C)。
步骤1:提取用户记录,合并所有相同的记录。
步骤2:计算条件属性C相对于决策属性D的正域posC(D)。
步骤3:对C的每一个分量Di,计算除去Di所得到的条件属性C-{Di}相对于决策属性D的正域posC-{Di}(D)。
步骤4:若posC-{Di}(D)=posC(D),说明Di对于决策属性D是不必要的,于是令C=C-{Di},然后转步骤(2);否则RED(C)=C,计算结束。
经过条件属性约减以后,得到的粗糙集中已经不存在冗余的条件属性。但在剩下的条件属性值中,针对每个决策分类而言还有可能存在冗余的情况,为了得到最精简的规则,就需要针对每种决策属性分类进行规则提取。提取的步骤如下:
步骤1:为每种决策属性分类分组,并在每个组中合并相同条件属性的记录,同时记下个数权重。
步骤2:对每一条记录的全部条件属性,若存在于其他决策属性分组记录集中,则该记录所表示的规则为模糊规则,计算其出现概率,否则为确定规则,概率为1。
步骤3:对每一条记录的条件属性进行从1~n(n为条件属性的个数)的排列,若仅取该排列的条件属性记录不存在于其他决策分组中,那么该排列的条件属性记为该条记录的最简条件属性集合;反之则继续计算直到找到该组合为止。
最终的规则集合形如if C then D,其中C为条件属性集合,D为决策属性集合。
3 家居实验
3.1 实验环境
基于北京科技大学物联网系的样板间体验平台进行了实验,该平台集成了环境感知、家电控制、健康采集、视频监控等一系列的设备状态实现。本文以环境温度、湿度、烟雾、污染、噪音为环境因素,空调、加湿器、窗户和排风扇为执行设备,具体设备信息如表1所示。
温度分成3个类{温度低,温度高,-},温度低类的正态分布拟合参数为(μ=17.8,σ=2.5);温度高的拟合参数为(μ=30.2,σ=2.7);都不属于这两类的数据使用“-”表示。把湿度分成3个类{湿度低,湿度高,-},湿度低类的正态分布拟合参数为(μ=22.4,σ=5.6);湿度高类的拟合参数为(μ=73.4,σ=8.1);都不属于这两类的数据使用“-”表示时间维度和其他连续值类型的环境因素不同,相比于正态分布而言更合适使用均匀分布进行拟合,因此这里对时间的分类拟合采用均匀分布。音量被分成2个类{正常,-}。正常类的拟合参数为(μ=33.5,σ=5.1)。另外两个环境维度:烟雾和污染的值类型为布尔型,不需要聚类以及拟合处理。
由于不同的月份用户的需求表现出较大的差异,故规则库的生成是以月为单位的,表2记录了5月份智能家居中某用户产生的状态变化结果。
于是记录表为粗糙集矩阵RS=[C D]。其中U={1,2,3,⋯,325}为论域;C={C1,C2,C3,C4,C5,C6}为条件属性,分别对应时间、温度、烟雾、污染、音量;D={D1,D2,D3,D4,D5,D6},为决策属性,分别对应温升、温降、湿升、湿降、通风、排风。
3.2 规则提取过程
首先计算每个属性的重要性:
因此σCD(C1)=γC(D)-γC-{C1}(D)=0.9。以此类推,σCD(C2)=1,σCD(C3)=1,σCD(C4)=1,σCD(C5)=1,σCD(C6)=0。C6是冗余属性,应该去掉。
接下来对属性值进行约简,并合模糊属性。最终形成的规则如表3所示。
表3中“*”表示该属性值与决策无关,“/”表示该动作不执行,“概率”项指的是在某个条件下执行此规则对应动作的可能性。概率为1表示一定执行,概率小于1由系统产生函数决定是否执行动作。
把规则表写入到规则数据库,同时写入到drools引擎的DRL文件中去。当系统状态发生变化时,规则引擎会自动激活相应的操作,从而实现对家居用户的个性化服务控制。把提取的规则用于智能家居的系统运行中,系统对环境条件的响应如表4所示。
4 结语
由于用户个人行为主观性的存在,很多情况下智能家居中无法使用预定义的规则。本文利用了粗糙集不需要先验知识和支持多维条件集合的优点,使用历史操作数据作为信息源,在处理了其中离散化的数据前提下,对历史记录表进行属性约减,提炼出简明、准确的规则。实验表明,本方法可以有效从用户历史中提取用户个性化需求,减少规则数量,针对不同的环境情况,做出适合用户习惯的反应,提供个性化的家庭规则控制方法,适用于个体数字家庭系统使用。但是,未来的家居智能控制环境可能是云端的方式,条件属性过多,规则提取过程中的计算量会过大。如何简化计算过程,使其使用与云中心方式工作的智能家居系统,是接下来需要考虑的问题。
摘要:智能家居的关键在于在不需要用户干预的条件下,针对不同的用户生成个性化的服务规则。用户习惯的主观性造成了服务规则不能预先定义,需要在家居系统运行过程中提取。粗糙集是一种处理不完备信息的工具,适合在大量复杂数据中发现潜在规律。把智能家居看成是一个状态驱动的环境,建立状态控制的家居控制系统平台,同时提出了一种基于粗糙集的智能家居个性化规则提取方法,把家庭历史状态记录看作挖掘对象,对状态值进行离散化,通过属性约简,找出影响决策的关键因素,再进行值约简,得出决策规则。智能家居实验室的实验表明,该种方法具有实用价值。
关键词:粗糙集,智能家居,规则提取,属性约简,数据挖掘
参考文献
[1]邵鹏飞,王喆,张宝儒.面向移动互联网的智能家居系统研究[J].计算机测量与控制,2012,20(2):474-479.
[2]王志良,王粉花.物联网工程概论[M].北京:机械工业出版社,2011:18-30.
[3]PAWLAK Z.Rough set theory and its applications to data analysis[J].Cybernetics and systems,1998,29(7):661-668.
[4]鄂旭,邵良杉,张毅智,等.一种基于粗糙集理论的规则提取方法[J].计算机科学,2011,38(1):232-235.
[5]刘洋,张卓,周清雷.医疗健康数据的模糊粗糙集规则挖掘方法研究[J].计算机科学,2014,41(12):164-167.
[6]陈超,陈性元,汪永伟,等.基于粗糙集理论的冗余规则处理方法[J].计算机工程与设计,2014,35(1):21-25.
[7]石夫乾,孙守迁,徐江.基于粗糙集的感性知识关联规则挖掘研究[J].计算机集成制造系统,2008,14(2):407-416.
[8]杨溢,王志良,王鲁,等.面向智能空间的异构网络同构化通信框架[J].计算机科学,2012,39(4):240-245.
[9]朱吕,姚锡凡,徐川.基于JBoss Drools的车间调度[J].组合机床与自动化加工技术,2014,6(6):131-134.
基于规则的方法 篇11
关键词:电子商务;数据挖掘;模糊关联规则;信任评价系统
1引言
电子商务中的信息挖掘一直是人们研究的热点。很多研究数据挖掘的学者纷纷将其研究的成果应用到实际当中,并作为市场预测、市场细分与分类、客户关系管理以及其他商务应用的参考模型。电子商务信息挖掘一般采用的是WEB数据挖掘中的一部分。例如,文献[1]就是利用SVM来进行电子商务中的应用挖掘——网络日志的分析,以提取客户分类及评分。
在电子商务环境中,一个电子商务支撑环境能够产生一个信任值,通过衡量已交付的服务质量以及从顾客和信任管理机构中获得的服务评价。没有任何信任管理机制,许多消费者也许会因为欺骗性的广告而请求了欺骗性的服务。另一方面,一个简单但是不完整的信任管理系统也许让服务提供商有选择性地欺骗顾客(例如,通过给许多低价的交易提供好的服务,但是在高价的交易中欺骗顾客来谋取大量的好处),以及欺骗信任管理机构(例如,通过在信任评价中合谋欺骗)。一些如此的欺骗可能导致服务质量降级,并且给客户带来经济损失。因此,电子商务行业必须有有效的信任管理[2]。
2关联规则的分类
关联规则的一个要求是结果得有透明度和可用性,这些结果是以产品群组规则的形式表示的,它表述了现实的产品和服务是如何组合到一起的。关联规则容易理解,但它们并不总是有用的。
有用的规则包含高质量、可操作的信息。平凡的结果早已被熟悉商业的任何一个人所知晓。平凡规则确实有一个用处,尽管它不是直接的数据挖掘应用。当一个规则应当在该时间100%出现,然后它却没有出现,这种情形可以提供关于数据质量的许多信息。换句话说,不遵循平凡规则的例外情况指出了商业运作、数据收集和处理等可能需要进一步改进的方面。费解的规则似乎没法解释,并且不给出行动过程。
当应用购物篮分析时,许多结果常常是平凡的或费解的。平凡规则再现商业常识,浪费了利用高级分析技术的努力。费解的规则是数据中的偶然事件,是不可操作的。[3]
关联规则有三个度量。支持度反映在交易数据中发现该规则的频繁程度,置信度说明当“如果”部分为真时“那么”部分也为真的频繁程度,而提升度反映该规则预测“那么”部分额相对根本没有规则要好多少。
这样生成的规则可以分成三类:有用的规则阐明可能没有预料到的关系,平凡规则阐明已知(或应该知道)存在的关系,费解的规则没有意义。费解规则常常有很弱的支持度。
3基于模糊关联规则的电子商务评价系统设计
3.1电子商务信任评价系统
一些著名的电子商务网站采用的是集中式信任管理机制[8]。在淘宝,每完成一笔交易之后,买家能够给一个反馈给系统,这个反馈是有关卖家的服务质量的,也许是良、中评或差评。淘宝服务器将这个评分存储在中心管理系统中。它用公式S=P-N来计算出这个反馈的分,其中P表示好评个数,N表示差评个数。淘宝网将这个S值显示在卖家的网页上。另一值R=(P – N)/(P + N)(1 ≥ R ≥ 0)是好评率。如果仅用好评率来作为信任评价的标准是不对的。通过模糊关联规则中,防止一些欺骗。例如,通过给许多低价的交易提供好的服务,但是在高价的交易中欺骗顾客来谋取大量的好处。
规则集相似度可以量化地表示当前的交易状态是否与正常的状态的相似程度,由此可以推断出此次交易的风险程度。并且可以根据其风险程度来进行报警或者提醒。
基于模糊关联规则的电子商务信任评价系统的流程如下图所示。
3.2模糊集和模糊隶属函数的建立
模糊集的建立实际上就是把数据集中的所有属性用模糊属性表示[4],每个模糊属性包含多个模糊值,每个模糊值有其对应的模糊集。模糊隶属函数用来描述一个确定属性值对于一个模糊属性集的隶属度。一个确定属性值可以隶属于多个模糊值,对应有多个隶属度。
如表1所示交易数据库T={t1,t2,t3,t4},属性I={num,money}(i1=num,i2=money)。
将每个属性又分别划分为若干个模糊集,对表1所示的数据库,在计算其各数据项隶属度之后数据库被转换为如表2所示。
4结束语
本文从电子商务信任管理中所发现的一些问题,结合现在数据挖掘在电子商务的应用,找到了一种基于模糊集的关联规则算法应用到电子商务信任评价中。在基于信誉的电子商务评价问题中,电子商务的评价往往是通过反馈的信息来完成,但是反馈回来的信息以及交易过程中本身所产生的信息要尽量将其中所隐含的信息挖掘出来,进行一定的分析,就可以得到一些有用的规则。而对于一些平凡的规则,也可以利用其来寻找其中的问题。这个系统还可以在进一步的进行扩展。例如,对规则集进行修正,去掉一些费解的规则,还可以去掉一些冗余的关联规则。这些都可以对整个流程有更好的改进。本文主要是对交易管理中的一些数据属性进行提取和发现规则。
参考文献:
[1] 过蓓蓓,方兆本.基于SVM的Web日志挖掘及潜在客户发现[J].管理工程学报,2010(1).
[2] Yan Wang and Kwei-Jay Lin.Reputation-Oriented Trustworthy Computing in E-Commerce Environments.
[3] Michael J.A.Berry,Gordon S.Linoff.别荣芳 尹静 邓六爱译.Data Mining Techniques:For Marketing,Sales,and Customer Relationship Management 数据挖掘技术:市场营销、销售与客户关系管理领域应用(原书第2版)[M].北京:机械工业出版社,2006.
[4] 王坤.模糊关联规则挖掘在入侵检测中的应用研究[D].西南交通大学,2006.
[5] 吴君辉,殷肖川,张薇.基于模糊关联规则挖掘改进算法的IDS研究[J].计算机测量与控制..2009.17(11)
[6] 邵峰晶,于忠清,著.数据挖掘原理与算法[M].北京:中国水利水电出版社,2003.
基于规则的方法 篇12
一、关联规则以及入侵检测简介
(一) 关联规则简介
关联规则的可以用一个集合来表示, 例如:假设集合A{a1, a2……, am}, 集合A是一项含有数据项的集合, 这个集合又称为项集。设集合B为一个数据事务集合, 每个数据集合都含有数据事务C, 且每个C都有唯一的标识, 这个标识称之为TID标识。集合C真含于集合A, 其中项集E、F, E真含于A、F真含于A, 并且E和F相交为空集, 这就可以得出E、F的关联规则。设立关联规则的目的是为了找出不同的数据集合之间的关系, 也是为了更方便的识别集合与集合之间的关系。
在关联规则中还有一个概念是支持度, 支持度是集合B中包含项集E的事务数与B之比, 以此可以理解为E在集合B中出现的概率, 表示为Pr (E) , 关联规则E、F关系式的支持度就可以表示为Pr (E∪F) 。例如:一个集合的长度为G, 这个项集就可以称之为G阶项集, 若假定一个最小支持数I, 如果G阶项集的支持度Pr (I) 大于或者等于最小支持数I, 就可称G为大项集, 这个大项集又可以表示为G阶频繁项集的集合, 数学表达式为Lg。
置信度概念也是关联规则中又一重要概念, 那么什么是置信度呢?该置信度概念与概率论中的置信度概念相似。例如:关联规则E、F的支持度为Pr (E∪F) , 那么规则关联式E、F的置信度就是Pr (E∪F) /Pr (E) =support (E∪F) /support (E) , 这个公式表示数据事务库A中同时包含单项数据E和F的可能性, 关联规则的置信度也可以用条件概率符号进行表示, 具体的数学表达式为Pr (F/E) 。
(二) 入侵检测简介
入侵是指用户的计算机网络遭到非法用户地攻击, 导致用户计算机内部的资料丢失、泄漏, 或者整个计算机网络处于瘫痪状态。入侵检测即是非法用户攻击计算机网络, 被安全系统所检测到的过程, 检测系统从计算机网络或者系统中的关键环节监测信息, 之后将所收集的信息和样本进行比较, 以此鉴定计算机是否有被入侵的行为和迹象。入侵检测是一项复杂的检测过程, 涉及到计算机、网络安全等多个领域的内容。
二、关联规则在计算机入侵检测系统中地应用
(一) 基于关联规则的入侵检测体系结构地建立
基于关联规则的入侵检测体系结构可通过设计一个WAFP入侵检测模型来实现, 其主要工作过程为先从网络中采集所需要的数据, 之后对所采集的数据进行第一步干预, 并将干预过后的数据转入到数据库中去, 之后用WAFP检测模型对入侵行为进行判断, 若是模型判定出入侵行为是事实, 则要交给模型的处理环节进行处理, 若不是入侵行为则要记录其信息详情, 以便后续处理。
(二) 基于关联规则入侵检测系统地运行
基于关联规则的入侵检测系统的模型就是上段文章所描述的, 那么其具体的运行过程又是通过什么模块来实现的呢?入侵检测系统运行是主要依靠数据采集模块、数据预处理模块、WAFP检测代理模块以及决策响应模块。
数据采集模块, 顾名思义是一个信息收集的过程, 即是从入侵检测系统的信息网络中收集到能够体现用户行为的信息。例如:用户对特别文件夹的浏览次数、用户对重要信息的浏览次数, 而对于用户所浏览的无关信息可以不用关注。入侵检测依靠的是强大的数据支持, 只要所收集到的数据够可靠、够准确, 那么信息收集范围越广, 入侵行为被发现的概率也就越高。
数据预处理模块是对数据采集模块所收集到的数据进行处理的模块。主要工作内容是将采集模块中收集到的原始数据进行进一步处理, 原始数据的特点是信息不完整、数据冗余、含有与关联规则无关的噪声等等。检测系统对这些原始数据是无法进行甄别的, 就要需要数据预处理模块进行干预。数据预处理模块的工作内容是将原始数据所缺失的部分进行数据赋值和信息填补工作, 处理之后的数据就可以统一放在一个数据库中存储, 之后再将整理好的数据传递到下一模块。
WAFP检测模块的工作内容对来自预处理模块的数据进行处理, 检测模块先将预处理模块处理好的数据分为训练集和测试集两个集合, 对于训练集中的数据进行关联规则挖掘, 主要目的是对不同属性产生的不同数据进行分类;而测试集中的数据则是要跟规则库中的规则数据进行对比, 以此判定该数据是否符合入侵行为, 若是入侵行为则需要系统的相关环节进行处理。
上段所提到的系统相关环节即是决策响应环节, 决策响应环节是对关联规则模块挖掘出的规则, 在相关系统地指导下进行入侵行为检测。例如:响应模块检测到入侵行为, 响应模块中的某个单元就会做出相关的防护措施, 根据入侵检测系统的不同, 我们可以将响应的方式定义为主动响应和被动响应, 若响应模块无法判定入侵行为, 则需要将其报告给计算机安全员处理, 由安全员进行判断。
结语
总而言之, 基于关联规则法的计算机入侵检测方法是维护计算机网络安全的主要手段之一。本文所有研究的内容具有针对性和专一性, 工程师在建立计算网络入侵检测体系时, 应根据入侵行为的相关性进行分析, 建立较为合理的入侵检测体系, 同时在系统运行之后还应定期地对检测系统进行维护, 避免新的问题出现。
摘要:计算机入侵检测是维护网络安全的重要手段, 当计算机系统检测到入侵行为时, 这就要求响应环节做出尽快地响应, 并记录出本次入侵的类型, 为网络安全保驾护航。由于大多数入侵行为具有关联性、特征性, 所以计算机入侵检测系统地建立就依靠这种特征。本文主要研究了基于关联规则的计算机入侵检测方法的相关内容, 并在文章的最后部分介绍了入侵检测体系是如何运行的。
关键词:关联规则,计算机,入侵检测,应用,建立
参考文献
[1]张新有, 曾华燊, 贾磊.入侵检测数据集KDD CUP99研究[J].计算机工程与设计, 2010, 31 (22) :4809-4812.
[2]蔡伟贤.关联分析在入侵检测中的研究与应用[D].广州:广东工业大学, 2011.