决策树与规则引擎

人们对决策树的使用

 
决策树常常被应用于数据挖掘之中,是最基础的算法之一,几乎每一个学习过数据挖掘的朋友都知道决策树。但还原决策树本来的用途,它被用于一些决策或决定时,还是比较实用和直观的。其树型结构指导人们进行在面对某个决策时,先关注其中几个最重要的方向,这几方向定下来后,再细分下去。近年来泳道路,思维导向图之类的图形/办公自动化工具慢慢兴起,得到大家的广泛好评,也就是决策树的一个很好的实现。
不过在各企业的应用系统中,又决策树又不是很常用,归根到底,决策树是思维导向的内容,是飘忽不定的东西,要形成结构化的内容非常困难。而且市面上大多数的业务系统都是使用关系型数据库,在处理格式数据时非常的方法,但处理树形数据就不一定性。所以也慢慢有部分技术公司开始使用对象型数据库。另一方面,决策树中的决策和判断都比较不规则,很多内容更像是程序员在编程,是一些规则,不是信息,这导致了传统的业务系统处理困难。
 
决策树的组成与程序表现
 
决策树使用一个树型结构来表达业务规则。如下图所示。
每一个非叶子结点都代码一个决策/决定,而叶子结点执行动作。而每一条边表达决策的可选定值,可以理解为判断。
如下图,A=red或=blue是可选值,而B属于决策结点。
 

 
但在程序实现中,就不一定是这样的组织方式,一般而言,结点的文字会比线上的文字更容易看清楚,加上各种编程语言都基于上有树型控件的处理,都是以结点的形式表达,很少使用连接线来表来。所以上图在程序中,最常见的表示方法,是把大量信息都集中在结果中。如A=red的结点,就直接写A=red,而不是另外命名,而对于叶子结点,则需要有更详细的地方显示其执行的动作(Action),实现的效果可能如下

 
部分决策表的数据,其实也可以组织为决策树,或使用决策树来表达更加的合适。决策树可以快捷有效地关联多个相关的规则,通过树型的关系,可能非常清晰地查看各个层级的决策逻辑。运算执行时,可以快速遍历各个决策结点,检查是否符合条件,如果符合条件再往下遍历。最终找到适用的条件和适用的操作动作。
 
停车场收费例子使用决策树
 
业务系统的调用方不用填空任何代码,所有的计算都在CKRule中进行了。CKRule中的设置正如上图。
            ParkFee _pf = new ParkFee();
            _pf.ParkType = cmbParkType.Text;
            _pf.DistType = cmbDistType.Text;
            _pf.CardType = cmbCardType.Text;
            _pf.PartTime = Convert.ToDouble(numericUpDown1.Value);
            _pf = new RuleFacade().Exec("费用-停车费计算-决策树", _pf);
            txtFee.Text = _pf.Fee + "";
要查看规则的设置内容,请使用CKRule编辑器,打开“费用-停车费计算-决策树.ckp”文件,找到决策树和主规则进行查看。
 
相关源代码,Demo下载:  http://www.ckrule.com/cn/demo.html
 

转载于:https://www.cnblogs.com/jingle/p/3841166.html

软件名称:CKRule规则引擎V1.0.9 *注意:请填写软件名称+ 有无插件:无插件 界面语言:多国语言 软件类型:国产软件 授权方式:免费版 软件等级: 软件大小:980 K 官方网址:http://www.ckrule.com/uploadfiles/CKRule1.0.9.zip 软件界面图:http://www.ckrule.com/Doc/cn/Files/sys.png 隶属栏目:编程开发 运行环境:win xp/win2003/win7/win8/win2008 标签 TAG:.Net规则引擎,业务规则管理 软件简介: CKRule是一个业务规则管理复合事件处理的综合性引擎,可以将企业管理策略的定义,部署,管理维护工作从核心代码中分离。 企业将深入的业务决策整合到程序,并把市场变化因素以业务规则的形式进行更新。而CKRule可大大降低程序维护的成本,促进业务程序实现更多准确有效的商务决策。 【软件特点】 1, 允许决策逻辑独立于核心程序代码。 2, 允许技术开发员业务专家共同定义管理决策逻辑。 3, 能够在程序运行时,允许程序执行决策逻辑管理,提供规则编辑器运行引擎。 4, 使用纯.Net CSharp开发,提供丰富API并允许使用所有.Net API,调用.Net类,方法,实现接口。 【软件功能】 【决策表】使用CKRule决策表,你可以使用表格的形式,非常直观地创建大量的规则。 【决策树决策树表现形式相对简单、形象生动,常常用于工作中。 【客户规则池】在客户规则池功能中,CKRule提供了各种各样的接口或控件,供业务系统使用,但CKRule对用户是透明的,用户始终是在使用业务系统中。 【口语式编辑器】口语式编辑器可以在CKRule内部及客户规则池中被调用,正如其名,其语法口语表达基本相同。 标准编辑器相比,口语式编辑器有大量的提示,这使规则编写变得非常容易,会使用Word就会使用口语式编辑器,无需任何技术基础,一学即会。 【中间件】 CKRule是一个规则引擎,是一个优秀的中间件,使用之后可以大大减少了底层代码的变动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值