Skip to end of metadata
Go to start of metadata

URule2技术交流QQ群及在线体验示例

在线体验示例:http://112.124.15.63:8084/ 为了不同用户操作互不影响,需要注册账号登录体验操作。

URule2技术交流QQ群:423339793

URule2规则引擎产品教学视频:https://pan.baidu.com/s/1oAeJeCM,密码:evsk

       评分是对个人或机构的相关信息进行分析之后的一种数值表达,表示此人或此机构由于信用活动的拒付行为所造成损失风险的可能性,评分通常用于对个人或机构的风险管理与评估。URule中的评分卡就是用来计算评分,它使用二维表形式展示目标对象的各个属性,针对不同属性设置不同区段的条件,每个区段条件对应不同的分值,运行时引擎会根据定义的区段条件自动计算目标对象的评分。

创建评分卡

       打开URule控制台,在项目的“评分卡”节点上右键,从弹出菜单中选择“添加评分卡”项,添加一个新的评分卡文件,如下图所示:


       在评分卡编辑器中,最上部是工具栏,通过这个工具栏导入需要的库文件;工具栏下面评分卡属性部分;接下来是评分卡配置的表格;最后是评分卡的得分计算方式及分值最终赋给哪个对象。

评分卡属性

评分卡属性有三块,第一块是配置当前评分卡表格是否支持权重(默认是不支持);第二块是给当前评分卡命名;第三块是具体属性项目,与决策树、决策表一样,具体属性项有四个,含义与决策树、决策表完全相同。

       与决策集、决策表、决策树一样,评分卡定义时同样需要导入相关的库文件,在评分卡配置表格中,属性列对应的目标对象就要求我们选择一个变量对象,然后才可以为通过工具栏上通过“添加属性行”按钮添加的属性行定义具体的属性。为演示这一操作,我们导入之前定义的“会员”变量库文件,导入后就可以为评分卡第一列属性列选择目标对象了,如下图所示:

       这里我们选择“会员”,接下来点击工具栏上“添加属性行”按钮添加的属性行,在属性行的第一列中,我们可以点击选择具体的属性,可以看到这里的属性菜单内容来自属性列头中选择的目标对象,如果我们更改了目标对象,那么每个属性行中属性菜单内容也会做相应的变化,如下图:


       在每个属性行中,除了可以选择目标属性外,其边上还有一个添加条件行的按钮,点击该按钮,可以为当前属性拆分出更多的条件行,如下图所示:

       在条件列中,每个条件行都可以通过单元格中的按钮配置具体的条件,点击该按钮,可以看到其条件配置窗口与决策表中条件配置窗口完全相同,如下图:


       依次配置好各个条件行单元格,效果如下图:

        条件行配置完成后,还有最后一列分值列,这一列中就是用来配置不同的条件行在运行时如果满足的情况下应该得多少分值,这里我们选择直接输入具体分值,定义好后的效果如下图:

关于自定义列

在URule当中,评分卡还允许添加自定义列,通过点击工具栏上的“添加自定义列”就可以为当前评分卡添加一个自定义列,自定义列中每个单元格都可以进行值定义,在运行时,引擎会自动计算这些单元格的值。一般情况下,添加自定义列的作用有两种:一种是对当前行进行备注,起到一个注释的作用;还有一种就是在“得分计算方式”中选择“自定义”时,在自定义类中通过代码可以获取到每行的自定义列信息,从而做进一步的加工处理。

       到这里,一个标准的评分卡表格就配置完了,接下来看看评分卡的得分计算方式,在URule规则引擎当中,对于得分计算方式提供了三种类型,如下图:


       第一种也就是默认的是“求和”,所谓求和就是对在运行时所有满足条件的条件行对应的分值列的值内容进行累加求和;第二种类型是“加权求和”,如果选择加权求和,那么需要我们将评分卡表格上部的“权重”属性设置为“支持”,这样可以看到所有的属性行中多出一个名为权重的编辑框,我们在这个编辑框中输入具体的权重值,如下图:

       一般情况下,每个属性单元格是的权重属性值是一个小数,所有的权重值加起应该是1,如下图:


       这样在将得分计算方式改为“加权求和”后,URule规则引擎将在运行时取到每个满足条件的条件行的分值,将这个分值与当前行对应的权重值做乘法计算,最后将所有乘法计算后的结果相加作为当前评分卡的最终得分。

       得分计算的最后一种方式是“自定义”,一旦选择这种方式,那么我们需要指定自定义计算得分的Bean的ID,如下图:


       这里的Bean要求实现URule中提供的com.bstek.urule.model.scorecard.runtime.ScoringStrategy接口,其源码如下:

ScoringStrategy
Scorecard源码

       将实现了ScoringStrategy接口的类配置到spring上下文中,使其成为一个标准的spring bean,将bean的ID输入到上面的自定义Bean的ID的编辑框中即可。下面是一个实现了ScoringStrategy接口的类示例源码:

 

ScoringStrategy实现类示例源码

       配置完得分计算方式后,我们还需要配置计算好的得分该赋给谁,这里默认是不赋给任何对象,这样计算后分值只会存留在引擎中,会在控制台以一条警告信息的形式打印出来。一般情况下,计算好的得分, 我们需要将它放到一个变量或参数当中,我们在代码中就可以得到这个评分值,从而做进一步处理。点击“不处理”,在弹出的菜单中选择要赋值的目标对象,如下图:

       可以看到,这里能赋值的对象只有变量和参数,通常情况下,我们会选择将评分值赋给一个参数,从而在业务代码中从参数中取到这个分值再做其它处理。当然如果选择变量那么就需要导入相应的变量库文件,选择参数就要导入相应的参数库文件。我们的参数库文件中之前定义了一个名为“总价”的参数,这里偷个懒,不再定义其它参数,就将计算后的评分值赋给这个名为“总价”的参数,如下图:

测试

       最后再给这个评分卡定义好名称,这样如上图所示简单的用“求和”方式计算评分的评分卡就建好了,接下为添加一个新的知识包,将这个评分卡文件放到这个知识包中,点击工具栏上的仿真测试,对这个评分卡文件进行测试,如下图:

       测试完后,切换到“参数”分类,可以看到它的“总价”属性已被赋上评分卡计算后的值,如下图:

       这里只是演示了最简单的情况,有兴趣的还可以打开权重支持,配置好各个属性的权重值,看看加权求和的结果;或添加自定义Bean,自定义计算评分结果。

Labels
  • No labels