改进方案树

2024-10-10

改进方案树(精选4篇)

改进方案树 篇1

0 引言

近年来,无线传感网络(Wireless Sensor Networks,WAN)作为物联网的关键技术之一,成为当前的研究热点。为此,涌现了一批无线传感网络协议,如ZigBee、蓝牙、超宽带和无线USB等等。由于ZigBee是基于IEEE 802.15.4[1]标准的低速率、低功耗、低成本、低复杂度、高安全性、自组织、可拓展的无线个域网协议,Zig Bee网络已被广泛应用于诸多领域,如楼宇自动化、智能家居、保健、智能能源、电信和零售服务等[2,3,4]。

ZigBee协议的物理层(PHY)和媒体接入层(MAC)是由IEEE 802.15.4定义的,在此基础上,ZigBee联盟制定了ZigBee协议的网络层和应用层,由此组成了ZigBee标准协议。在ZigBee协议网络层[5]中定义了基于分层地址分配的ZigBee树路由(ZTR)算法和基于路由表的AODVjr路由算法。由于ZTR算法无需路由表和路由发现过程,在内存资源有限的设备中,有着广泛的应用。但是ZTR必须遵循树型拓扑结构的基本限制,从而导致跳数多,上层节点能量消耗过快等问题。针对以上问题,戚剑超[6]和刘丹[7]等提出利用邻居表来减少ZTR算法跳数多的问题,但当在目的节点是转发节点的子节点时,都选择将数据包按树型结构向下发送给相应的子节点,改进后算法一定程度上减少了路由跳数,但效果并不显著。尚雪辉[8]和Atefeh Khatiri[9]等提出了综合跳数、节点能量消耗和链路质量的节点选择优化函数,转发节点计算所有邻居节点的函数值,将有最优解的邻居节点做为下一跳节点,这种方法虽然综合了三种因素,但也正是由于这个原因,函数并不能保证向目的节点收敛,结果导致算法丢包率过高。Saeyoung Ahn[10]等提出了目的节点家庭组(Destination Family Group)的概念,将目的节点的父节点,子节点,隔代父,子节点看做一个家庭,基于此概念提出了Destination Family Group-Tree Routing(DFG-TR)算法。该算法在转发节点的邻居表中没有目的节点的情况下,继续寻找目的节点的家庭成员作为其下一跳节点,以此达到减少跳数的目的。但是该算法只是考虑了邻居节点中存在目的节点家庭成员的特殊情况,在减少跳数和节约能量方面的效果并不明显。本文对ZTR算法进行深入研究,通过对ZTR算法的改进,提出了快捷树路由(Shortcut Tree Routing,STR)算法并对其进行了算法仿真与分析。

1 ZigBee的网络块地址分配和块寻址方法

ZigBee支持星型,树型和网状型三种网络拓扑结构,其结构如图1所示。另外在ZigBee协议中,还定义了两种节点类型,即全功能节点(FFD)和精简功能节点(RFD)。FFD有路由功能,可以作为网络的协调器和路由器并拥有子节点,而RFD没有路由功能,只能作为终端节点。同时,ZigBee协议还定义了最大网络深度Lm,最大路由节点数Rm和最大子节点数Cm三个基本参数。

ZTR算法的实现,主要依靠其基于Cskip值的块寻址分配方法[11]。在ZigBee协议中,每个节点都会由其父节点为其分配一个唯一的16位网络地址。每个节点可以利用自己的网络地址计算得到自己的网络深度和其子节点的地址范围。Cskip(d)是网络深度为d的父节点为其子节点分配地址的偏移量,它可以由Lm、Rm和Cm计算得到,即:

地址为Aparent的父节点为其接收的第n个作为路由器节点的子节点分配的网络地址为:

为其接收的第n个作为终端节点的子节点分配的网络地址为:

另外,ZigBee协议中规定,协调器节点的网络地址为0,其网络深度为0,是所有网络节点的根节点。基于以上块地址分配方法,建立的分层树型结构,使每个节点都可以计算出目的节点是否自己的子代节点。例如,当一个节点的网络地址为A,其网络深度为d,目的节点的网络地址为D,如果目的节点满足公式(4):

就可以确定目的节点为该节点的子代节点,按照公式(5):

选择下一跳节点N,否则将数据包发送给其父节点。

2 ZTR算法分析

ZTR算法是以树路由(Tree Routing,TR)算法[12为基础加以改进的,ZTR算法的主要缺陷实际上是TR算法缺陷的延伸。TR算法在选择下一跳的转发节点时,仅仅考虑了节点之间的父子关系,如图2(a)所示,即使目的节点在源节点的1跳范围内,因为目的节点和源节点不存在子节点或者父节点一类的关系,数据包依然通过分层树结构进行转发。这不仅造成了网络能量的极大浪费,也会导致网络深度越低的节点能量消耗越快。

ZigBee协议为解决数据包传输过程中的迂回问题,引入了邻居表和直接传输原则。邻居表中存放了每个节点1跳范围内的网络节点。ZTR算法在转发数据包前会检索自己的邻居表,如果目的节点是自己的邻居节点,转发节点会将目的节点作为下一跳节点。否则,ZTR算法将按树型结构的父子关系进行数据包的转发。ZTR虽然利用邻居表进行了改进,仍然存在数据包跳数多,上层节点能量消耗过快的问题,如图2(b)和图2(c)所示,当目的节点在转发节点1跳范围之外时,仍然存在数据包迂回问题。

3 快捷树路由(STR)算法实现

利用源节点或转发节点的一跳邻居表,本文提出的STR算法可以有效的解决ZigBee树路由的迂回问题和上层节点能量消耗过快的问题。当邻居节点不存在目的节点时,该算法会选择邻居节点中具有到达目的节点最小树路由跳数的节点作为下一跳节点。如图2(b)所示,STR算法计算所有邻居节点到达目的节点的树路由跳数,然后选择跳数最小的N4作为下一跳节点,然后由N4将数据包发送给目的节点。

在TR算法中,一个数据包总要由源节点或转发节点向上传到它和目的节点的公共父节点,再由公共父节点向下传到目的节点。STR算法的主要思想是,利用ZigBee的分层树型结构和块地址寻址方法,可以计算得到任意节点到目的节点的分层树路由跳数。换言之,可以计算任意节点和目的节点的网络深度和它们的公共父节点。

当源节点或转发节点和目的节点在同一个树型分支上,即两个节点有直接的父代和子代的关系时,可以直接用两个节点的网络深度值相减,其绝对值就是任意两个节点之间的树路由跳数L。另外,当两个节点不在同一个树型分支上时,必须求得其最底层的公共父节点,才能算得这两个节点之间的树路由跳数。首先计算转发节点的网络深度dA,然后将该节点看做是目的节点,通过公式(5),从根节点协调器开始计算出该节点在每层树型结构的父系节点,记作集合A。通过同样方法计算出目的节点的网络深度dD和父系节点,将其父系节点记作集合D。通过A和D的交集就可以求出两个节点的所有公共父节点,按照ZigBee树路由的地址分配方法,交集中,地址值最大的即是要求的最底层的公共父节点。

求得转发节点和转发节点的最底层公共父节点后,可计算得到公共父节点的网络深度dC,通过公式(6):

就可以求得任意转发节点到目的节点的树路由跳数。

在STR算法中,就是通过上述方法,在源节点或转发节点的邻居表中不存在目的节点时,调用自己的邻居表,分别计算出每个邻居节点到目的节点的树路由跳数,把跳数最少的邻居节点作为下一跳节点N。如果存在最小跳数相同的节点,则选择能量剩余较多的节点作为下一跳节点。STR算法的流程如图3所示。

4 仿真实验结果

为评估STR算法的性能,在MATLAB中分别对TR算法、ZTR算法、DFG-TR算法和STR算法进行了算法仿真。重点通过数据包传输所用的跳数、网络能量消耗的均衡性、和整个网络的寿命来做对比,仿真结果表明,STR算法有效改善了ZTR算法的迂回问题和其上层节点消耗过快的问题。

仿真实验模拟设计了一个100×100m2的网络区域,设定网络节点的最大传输范围为20m,且每个节点的位置是随机给出的。这样形成的ZigBee网络具有一般性。另外,为了使形成的ZigBee网络具有一般性,网络的其他参数如下:Cm=4,Rm=4,Lm=6。仿真实验中每个节点基数的实验进行3次,记为一组,将3次实验的结果取平均,记为该节点基数的实验结果。仿真实验从32网络节点开始进行试验,每组实验结束,将节点增加32个再进行实验,直至节点增加至224个。仿真共进行了组,即21次实验。实验结果如图4、图5所示。

图4是各不同算法发送200个数据包和其需要的总跳数之间的关系图。有图可以看出,STR算法所需跳数对ZTR算法有明显优势,相比DFG-TR算法也有较大提高,而且优势随着网络节点的增多有扩大的趋势。在网络中有224个网络节点时,STR算法比ZTR算法所用的总跳数减少了25%,比DFG-TR算法减少了19%。

图5是各不同算法由于能量耗尽出现第一个死节点时,其发送数据包的总个数相对于TR算法所发送数据包的相对倍数。从图中可以看出,ZTR算法和DFG-TR算法相对于TR算法的优势很小,且随着网络中节点数目的增加,优势越来越弱。相反,STR算法不仅优势明显,而且随着网络节点数目的增加,优势越来越明显。

另外,在仿真中,除STR算法外,其他算法第一个耗尽能量的节点通常为协调器,即网络的根节点。而STR算法在多数情况下,耗尽的节点为靠近协调器的节点,这是STR算法能量消耗更均衡的表现。

5 结束语

针对树型结构中数据包的迂回问题和节点能量消耗不均匀的问题,提出了STR算法有效利用邻居表和ZigBee协议中的块地址寻址进行了改进。从仿真结果看,STR算法降低了网络的路由跳数并均衡了能量消耗。尤其适用于节点密度大,个数多的无线传感器网络。例如在对畜禽舍、化工厂和矿井中温湿度、氨气、硫化氢和甲烷等环境因子进行监控时,可以解决根节点及上层监控节点由于网络能量消耗不均匀导致其能量消耗过快的问题并延长监控网络的使用寿命。

参考文献

[1]郦亮.IEEE 802.15.4标准及其应用[J].电子设计应用,2003,(1):14-16.

[2]Han Dae-Man,Lim Jae-Hyun.Smart Home Energy Management System Using IEEE 802.15.4 and Zig Bee[J].IEEE Transactions on Consumer Electronics,2010,56(3):1403-1410.

[3]Chen Shyr-Kuen,Kao Tsair,Chan Chia-Tai et al.,A Reliable Transmission Protocol for Zig Bee-Based Wireless Patient Monitoring[J].IEEE Transactions on Information Technology in Biomedicine,2012,16(1):6-16.

[4]Yi Peizhong,Iwayemi Abiodun,Zhou Chi.Developing Zig Bee Deployment Guideline under Wi Fi Interference for Smart Grid Applications[J].IEEE Transactions on Smart Grid,2011,2(1):110-120.

[5]刘丽钧,童丽丽.Zig Bee技术网络层的路由算法分析[J].计算机与信息技术.2008,(1):70-72.

[6]戚剑超,魏臻.Zig Bee树型路由算法的改进[J].合肥工业大学学报(自然科学版).2010,33(4):529-532.

[7]刘丹,钱志鸿,刘影.Zig Bee网络树路由改进算法[J].吉林大学大学学报(工学版).2010,40(5):1392-1396.

[8]尚雪辉.基于Zig Bee技术的热计量表物联网路由协议研究[D].秦皇岛:燕山大学,2012.

[9]Atefeh Khatiri,Ghasem Mirjalily,Ahmad Khademzadeh.Energy-efficient Shortcut Tree Routing in Zig Bee Networks[A].Fourth International Conference on Computational Intelligence,Communication Systems and Networks[C].2010.

[10]S.Ahn,D.Ko,B.Kim,S.Lee,S.An.Energy-efficient Tree Routing Algorithm-based Destination Family Group in Zig Bee Networks[A].Fourth International Conference on Sensor Technologies and Applications[C].2010.

[11]薛艳亮,胡建萍,王江柱.基于分布式编址机制的Zig Bee组网技术研究[J].杭州电子科技大学学报.2008,28(2):33-36.

改进作风树形象务实清廉创佳绩 篇2

2014年8月5日, 太原市高新技术创业服务中心召开了党的群众路线教育实践活动专题民主生活会。会议由中心党支部书记许仪主持, 太原市科技局党的群众路线教育实践活动督导组组长、党组成员、副局长郑文明, 机关党委专职副书记郑华新, 督导组成员李泽毅一行莅临指导并组织了民主评议。创业中心领导班子3人参加会议。本次专题民主生活会按照“照镜子、正衣冠、洗洗澡、治治病”的总要求, 紧扣“为民务实清廉、反对‘四风’、服务群众”主题, 认真对照“三严三实”要求, 深刻剖析了领导班子在“四风”方面存在的突出问题。在相互批评中, 班子成员直面问题和矛盾, 联系实际工作与思想、党性, 敞开心扉, 坦诚相待, 既指出问题的症结和表现, 又提出解决问题的合理化建议, 真正起到了加加油、鼓鼓劲的作用, 也达到了“团结一批评一团结”的目的。2014年8月8日, 太原市电子研究设计院召开了党的群众路线教育实践活动专题民主生活会, 班子成员结合单位实际和对照检查材料开展面对面的批评与自我批评。通过召开专题民主生活会, 进一步提高领导班子的凝聚力, 向心力, 找准了破解电子研究设计院改革发展的重点和难点问题, 明确了工作方向和思路, 为推进本院改革发展奠定了思想基础。2014年8月7日, 太原科创信用担保有限公司联合支部召开党的群众路线教育实践活动专题民主生活会。会议由支部书记梁慧颖同志主持, 太原市科技局党的群众路线教育实践活动联系点领导、纪检组长程莉、机关党委专职副书记郑华新及督导组其他成员莅临指导并组织了民主评议。会上, 领导班子成员以“为民务实清廉”为主题, 以反对“四风”、服务群众为重点, 深入查摆“四风”突出问题, 从世界观、人生观、价值观深刻检查剖析问题根源, 开展批评与自我批评, 体现了科创担保联合支部领导班子敢于担当、勇于剖析自己的勇气。t

2014年8月6日, 太原科伟科技创业投资管理有限公司召开了党的群众路线教育实践活动专题民主生活会, 会议由公司支部书记安文柱主持, 太原市科技局纪检组长程莉、总工程师徐华及督导组成员莅临指导并组织评议。会上, 太原科伟科技创业投资管理有限公司领导班子成员本着对自己、对同志、对班子、对公司高度负责的精神, 按照“照镜子、正衣冠、洗洗澡、治治病”的总要求, 围绕“为民务实清廉”主题, 聚焦“四风”突出问题, 以整风精神开展了批评与自我批评。大家开门见山, 直面问题, 坦诚相对, 深挖思想根源, 防止避重就轻, 真正做到了亮出问题不怕丑, 剖析原因不怕严, 触及灵魂不怕痛, 达到了统一思想、明确方向、增进团结、改进作风的预期目的。2014年8月6日, 太原市科技信息服务中心召开了党的群众路线教育实践活动专题民主生活会。会议由信息服务中心党支部书记、主任邢占峰主持, 太原市科技局党的群众路线教育实践活动督导组李保现副调研员, 焦晋栓处长, 郭健同志莅临指导并组织评议。会上, 中心支部书记、主任邢占峰、副主任许巍巍按照“照镜子、正衣冠、洗洗澡、治治病”的总要求, 全面查摆“四风”问题, 深刻剖析思想根源, 认认真真开展批评和自我批评。此次会议, 班子成员对号入座、揭短亮丑, 勇于从主观层面找原因, 并对职工群众所提的意见建议和反映的问题有回应、有说明、有反思。同时, 班子成员之间大胆开展批评和自我批评, 达到了红红脸、出出汗、加加油、鼓鼓劲的目旳, 提高了认识、交流了思想、找准了问题、增进了团结。

时钟树性能的研究及改进方法 篇3

同步数字集成电路的性能很大程度决定于时钟网络的设计,首先时钟信号决定数据传输节拍和系统工作频率。其次,时钟网络是芯片中翻转频率最高的电路之一,时钟网络对布局、布线、功耗资源占有率很大。再次,时钟网络的规模造成时钟信号翻转时会吸取大的电流,并且时钟信号转换时间很小,容易造成电源网络上的噪声,因此构建一个好的时钟网络对于一颗芯片而言是非常重要的。

随着数字集成电路规模的不断增大,系统频率的要求越来越高,时钟网络的结构越来越复杂,如何构建时钟树,以及如何提高时钟树的性能成为越来越重要的问题。

本文讨论了时钟树的常用性能指标:时钟树长度、时钟树的偏差和时钟信号占空比,分析了时钟树的构建对时序、功耗的影响。

1 缩短时钟树长度的好处及相应策略

1.1 缩短时钟树长度的好处

时钟树从时钟源开始,通过buffer或inverter逐级向时钟终点扇出,构建时钟树。一条时钟树分支上面的cell delay和net delay之和构成了这个分支的长度,除了某些设计的特殊性要求最小的时钟树长度外,时钟树的长度越短越好,时钟树上的cell本身会消耗功耗,占据面积,所以短的时钟树有利于降低功耗,降低面积。这对于现代手持设备而言,意义巨大。

在90nm及更高级的工艺中,时序分析需要考虑OCV(On Chip Variation),OCV的情况下的setup计算方法是:launch path采用max_delay,capture path采用min_delay,也就是说,tree的长度越长,因OCV造成的launch的tree的延时与capture的tree的延时二者之差越大。这样时序就越难满足。

1.2 缩短时钟树长度的策略

在数字后端设计中,floorplan阶段的布局会对之后的时钟树长度造成很大影响,所以一个好的floorpaln会非常有利于后面的CTS(clock tree synthesis)。

在floorplan阶段会有一定数量的macro要摆放,在摆放这些macro时要避免产生狭窄的通道,因为当这些狭窄的通道内被放入寄存器后,连接这些寄存器的tree就会做得比较长,而时钟树引擎会尽量平衡时钟树的所有分支,这样其它分支就会被这些长的分支拉长了,造成了功耗和面积的浪费,时序的不容易满足。

2 时钟树平衡

2.1 时钟源的设置对时钟树平衡的影响

如果时钟源离core里面的逻辑比较远,该时钟驱动的寄存器一部分在时钟源附近,另一部分远离时钟源,那么这个时钟树就不容易balance,例如时钟来源于一个IO。可以改变时钟的创建位置,如图1所示,在IO面向core的输出pin后面插两级时钟buffer,把buffer_2放置于靠近core的位置,在buffer_2的输出端Y创建时钟,使该时钟所驱动的寄存器相对于时钟源分布得更均匀,这样有利于时钟树的平衡。

如果芯片的时钟信号来源于芯片的IO,那么这个IO的特性将会影响到其后面的时钟树性能。这个IO的信号上升斜率和下降斜率可能不一致,而这种不一致会通过时钟网络逐级传输下去,时钟树综合引擎会平衡上升传播延时和下降传播延时,这样为了达到平衡,一些多余的buffer或inverter就被插进去了,因此,时钟树就被拉长了。

解决这个问题,可以选用信号上升斜率和下降斜率一致的IO,也可以把时钟源的创建位置从IO的面向bond的pin移到面向core的pin上。

2.2 宏模块的时钟端对时钟树balance的影响

某些macro的lib库会定义一个内部的clock tree,因此造成时钟树在此处不平衡,而此处的不平衡又造成了这个小区域和整个时钟域之间的不平衡。可以在这些macro的时钟端设一个float pin,这样工具就会考虑到这个float pin值,时钟树偏差就会做得比较小。

对于某些IP,其时钟端输入电容比较大,CTS engine为了满足此处的transition和capacitance的约束,就会在此处插入一些buffer或inverter,这样时钟树就被这些buffer或inverter拉长了。可以在这些IP的时钟输入端附近插入一个合适驱动能力的buffer,并使其位置固定。再在这个buffer的输入端定义一个float pin,这样就可以避免大的输入电容的时钟端对时钟树性能的影响。

2.3 分离门控对时钟树balance的影响

门控时钟可以降低功耗和面积,但是分离门控时钟会对时钟树平衡产生不利影响。如图2所示。

CTS engine会把clk-->GN-->Q-->A-->Y和clk-->B-->Y都当作时钟路径,而CTS engine计算最短延时时计算通过clk-->B-->Y的路径,计算最长延时时计算通过clk-->GN-->Q-->A-->Y的路径,时钟树因此造成了比较大的偏斜。而实际的时钟传输路径只有通过clk-->B-->Y的,所以可以在A端设一个exclude pin,另外一种解决方法是在CTS之前断掉与门A-->Y的timing arc,CTS之后再恢复这个地方的timing arc。

2.4 clock inverter和clock buffer对时钟信号占空比的影响

从时钟树构成元素角度来分,时钟树有三种方式,clock buffer构成的时钟树、clock inverter构成的时钟树、clock buffer和clock inverter混合构成的时钟树。clock buffer由前一级小宽长比的inverter和后一级大宽长比的inverter构成,前一级提供小的输入电容,后一级提供大的驱动能力。

对于时钟占空比要求高的设计,采用只有inverter构成的时钟树会有更好的效果。由于PMOS和NMOS的充放电速度不一样,一个上升沿的信号和一个下降沿的信号经过一个clock buffer的延时是不一样的,即使时钟源发送出0.5占空比的时钟信号,在时钟信号的传输过程中,占空比也会偏离0.5。

而对于由inverter构成的时钟网络,如图3所示,第n级inverter和第n级net造成的上升沿时钟信号和下降沿时钟信号的传播延时不一致将在第n+1级inverter和第n+1级net处得到补偿,而clock buffer内部的两个inverter已经相对固定,无法形成inverter和net构成的自动补偿机制。

3 结束语

本文关注于如何提高时钟树性能,具体介绍了如何缩短时钟树长度、减小时钟树偏斜、优化时钟信号占空比。对于影响时钟树性能的因素:floorplan、时钟源的位置、时钟IO的信号上升下降斜率、宏模块时钟端的电容、门控时钟的处理、clock inverter的使用都分析了相应的策略。

摘要:分析了时钟树的性能要素:时钟树长度、时钟树偏差和时钟信号占空比,分析了改进时钟树性能的多个策略:合理的floorplan、合理的时钟创建源点、避免宏模块时钟端对时钟树平衡的不利影响、正确处理分离时钟门控、使用clock inverter改善时钟信号占空比。

关键词:时钟树,时钟树长度,时钟树平衡,占空比

参考文献

[1]陈春章,艾霞,王国雄.数字集成电路物理设计[M].北京:科学出版社,2008.

[2]R.Chaturvedi,Hu J.Buffered clock tree for high quality IC design[M].Proc.ISQED,2004:381-386.

[3]汪珺.基于Garfield5设计中时钟树综合技术研究[D].南京:东南大学,2006.

一种改进的决策树算法研究 篇4

决策树分类算法中的ID3算法是Quilan在1986年提出来的,也是决策树构造中的经典算法[1]。ID3算法是以信息论为基础,它使用信息熵和信息增益两个指标为衡量标准,选择信息增益最大的属性划分训练样本,从而生成决策树。

定义1、按类标签对训练集D的属m性集A进行划分,信息熵为:

Pi为训练集D中属于第i类的概率。

定义2、按属性集A中每个属性进行划分,得到一组信息熵:

Dj为属性集中每个属性的出现的次数,D为所有属性的总次数。

定义3、信息增益为:

ID3算法对每个节点中选择Gain(A)中最大的属性A作为选择分支的属性。这种算法的缺点是:倾向于选择取值较多的属性[2],在有些情况下这类属性可能不会提供什么有意义的信息,ID3学习简单逻辑表达式的能力差[3]。此外,ID3将注意力集中在属性的选择方面,而属性的选择对决策树的影响如何, 仍无定论[4]。

2 改进的ID3算法

1)调整信息增益

针对ID3算法偏向于选择取值较多但实际中并不总是最优的属性作为测试属性的缺点,调整信息增益。Gain’(A)=Gain(A) /X,其中X的取值大于等于1,主要由属性A的取值个数和使用者根据经验及领域知识来确定,一般取值个数越多则X越大。改进的ID3算法通过调整每个属性的信息增益,使生成决策树时数量少但又很重要的属性不会被淹没,最终使决策树克服了对取值多的属性的偏爱,因为属性取值越多,调整后的信息增益就越小,这个属性当然就很难被选中为判断属性了。

2)剪枝

剪枝方法主要是考虑在决策树的哪个位置产生叶子合适 [5]。剪枝算法分前剪枝和后剪枝。前剪枝是在决策树构造过程中选取某个预定义的阀值,使得某些节点不再继续分裂,限制树的生长。后剪枝是将已生成的决策树做去分支处理[6]。前剪枝由于很难选取一个合适的阀值,应用困难。后剪枝的时间复杂度高,但生成的决策树准确度高,但主要应用的几种后剪枝算法都存在过剪枝或欠剪枝现象。由于各种剪枝算法都有缺点,所以本文提出采用灵活的剪枝方法进行剪枝。

剪枝方法为:首先,根据具体需要设定生成决策树的高度、精确度等信息,设定主要依据经验和领域知识来确定。然后, 针对决策树节点a来说,对a进行剪枝,则产生的错误分配样本数为:

未剪枝的子树错误分配样本数为:

未剪枝的子树误差为:

其中,e(a)为a节点的错误分配样本数,Ti(i=1,2,…,n)是Ta节点的子节点,Ca是Ta节点的子节点数。如果叶子节点的成立,那么Ta可以剪枝。

3实验测试结果

实验所用数据为UCI数据库中的Iris数据集(样本数209个,属性7个)、Breast数据集(样本数817个,属性11个)和Seg-mentation数据集(样本数2932个,属性26个)。对这三个数据集所有连续值的属性使用DBChi2算法对数据进行离散,随机抽取每个数据集中的2/3用于训练样本集,其余的1/3用作测试样本集,然后分别用传统的ID3算法和改进的ID3算法构建决策树,最后通过测试样本集测试准确度。上述构造决策树的方法反复进行十次,得出的结果如表1。

从表1中能明显的得出,改进的ID3算法平均的分类准确度更高,生成决策树的平均叶子数也高过传统的ID3算法,具有更低的复杂性。从实验还得出改进的ID3算法通过不断的学习调整信息增益,从而克服了传统ID3算法倾向于选择取值较多的属性的缺点,但是改进的ID3算法通过实验得出在时间复杂度上和传统ID3几乎一致。

4 结束语

改进的ID3算法调整了传统的ID3算法的信息增益计算方法,又加入了灵活的剪枝策略。它可以依靠经验或领域知识人工增强重要属性在分类决策中调整信息增益,从而减少非重要属性的信息量,特别是它可以减少ID3算法对取值较多的属性的依赖性,从而改善分类规则和结果。

摘要:决策树算法是数据挖掘中的一个常用算法,它通过构造决策树来发现数据中蕴含的分类规则,如何构造精度高、规模小的决策树是决策树算法的核心内容。决策树算法中常用的一种是ID3算法,该文针对传统ID3算法的缺点,提出一种改进的ID3算法,通过实验证实,改进的ID3算法在生成的决策树的规模和精度方面都比传统的ID3算法好,使用这种改进的ID3算法可以提高性能。

上一篇:水源地建设下一篇:网络时代的德育教育