通常的业务规则我们使用If then的形式来描述,而现实生活中的企业业务决策要复杂得多,一般由多个规则组成,而且其复杂性很难直接通过经典的基于rete的规则引擎利用其推理能力执行多个if then语句来解决。需要对规则流的设计,模型的建立,规则的层次结构有一个整体的考虑设计,以真正达到企业运营决策逻辑的敏捷变更的目的。
本文将使用一个金融行业常见的客户风险评分场景,来说明怎么利用业务规则技术(IBM ODM/JRules)实现复杂决策。
客户风险评分需求
所谓客户风险评分,就是根据客户信息使用特定的公式规则算法计算出用于标识客户风险级别的分值,在金融行业广泛的应用,如银行信用卡申请,个人或企业贷款审批。自动化的客户风险评分可以提高风险管理的及时性,确保评分决策的一致性,减少人工干预,进而实现业务流程自动化,降低运营成本。通常企业希望评分机制可以根据情况随时调整,包括评分参数,计算公式,风险因子等。如果使用代码方式或者数据库参数表的方式实现评分逻辑,其灵活性通常难以达到用户的期望。
一个客户的具体风险评分需求如下:
1. 准入规则
- 申请人的年龄比如大于18岁,小于60岁
- 申请的金额不得超过1,000,000
- 申请人必须有正当职业,不接受无业者的申请
2. 评分规则
以下表格是客户风控部门设定的评分标准的一个子集,实际的评分模型当然远远比示例复杂,某些因子之间有关联关系,其权重或者风险分值也可能相互影响。
风险要素 | 权重 | 缺省分值 | 风险要素取值范围 | 风险要素分值 |
---|---|---|---|---|
Age | 10% | 10 | < =25 | 75 |
26 - 30 | 30 | |||
31 - 45 | 10 | |||
> =46 | 50 | |||
Gender | 5% | 20 | Male | 100 |
Female | 50 | |||
Education Level | 15% | 20 | High School | 80 |
Associate Degree | 50 | |||
Bachelor Degree | 20 | |||
Master Degree | 20 | |||
Doctor Degree | 50 | |||
Employment Type | 10% | 20 | Employed | 20 |
Self Employed | 50 | |||
Corporate Type | 10% | 30 | Top 1000 Corporations | 10 |
State Owned Corporations | 20 | |||
Others< |