聊一聊规则引擎

jonathan
2022-01-29 / 0 评论

规则引擎能力

一、规则集

规则集也叫决策集,是由一组普通规则和循环规则构成的规则集合,是使用频率最高的一种业务规则实现方式。

鲁班提供循环、逻辑(IF/ELSE)、赋值、执行、跳出规则等指令。

经典实例

  1. 新用户注册优惠: 如果用户是新注册用户,并且首次购买订单金额超过一定数额,则发送一张10%折扣的优惠券。
  2. 购物满减优惠: 如果用户购物车中的商品总价达到一定金额阈值,则自动应用满减优惠。比如,购物车金额大于100元可以享受减免10元的优惠。
  3. 特定商品优惠: 如果用户购买特定商品(如促销商品、季节性商品),则提供针对该商品额外的折扣或优惠。
  4. 生日优惠券: 在用户生日时发送一张生日优惠券,提供额外的折扣或者赠送特定商品。
  5. 用户活跃度奖励: 对于长时间未下单的用户,发送特定额度的优惠券以鼓励再次购买。
  6. 地理位置优惠: 针对特定地理位置的用户发送定向的优惠券,以促进当地的销售。

病人风险评估系统规则集示例

考虑以下条件和操作:

  1. 年龄: 30岁以下(Young)、30到50岁(Middle-aged)、50岁以上(Elderly)。

  2. 生活方式: 锻炼频率(High、Moderate、Low)、饮食习惯(Healthy、Unhealthy)。

  3. 慢性病史: 有(Yes)或无(No)。

  4. 风险评估等级: 低风险(Low)、中风险(Moderate)、高风险(High)。

规则集示例:

FOR(用户集合 )
 用户。年龄
IF 年龄 = Elderly AND (锻炼频率 = Low OR 饮食习惯 = Unhealthy) THEN 风险评估等级 = 高风险

IF 年龄 = Middle-aged AND 慢性病史 = Yes THEN 风险评估等级 = 高风险

IF 年龄 = Young AND 锻炼频率 = High THEN 风险评估等级 = 低风险

IF 年龄 = Elderly AND 锻炼频率 = Moderate THEN 风险评估等级 = 中风险

在这个例子中,规则集根据病人的年龄、生活方式和慢性病史等条件制定了不同的风险评估规则。例如,对于年龄较大且锻炼频率低或饮食不健康的病人,系统会评估其为高风险群体,需要更频繁的检查或干预措施。

这种规则集的应用有助于医疗保健领域更精准地对病人进行风险评估,并根据其个体情况提供相应的医疗建议,从而改善病人的健康状况。

二、决策树

决策树又称为规则树,规则引擎中提供的另外一种构建规则的方式,它以一棵树形结构来表现规则,决策树表现业务规则更为形象,其中每个节点代表一个测试条件,每个分支代表一个测试结果,而每个叶子节点包含一个决策结果。

信用评分系统决策树示例

考虑以下特征和目标:

  1. 年龄: 25岁以下(Young)、25到40岁(Middle-aged)、40岁以上(Elderly)。

  2. 收入水平: 低收入(Low)、中等收入(Medium)、高收入(High)。

  3. 信用历史: 良好(Good)、一般(Fair)、差劣(Poor)。

  4. 是否有抵押物: 有(Yes)或无(No)。

  5. 信用申请结果: 批准(Approved)或拒绝(Rejected)。

决策树示例:

IF 信用历史 = 良好 AND 收入水平 = 高收入 THEN 信用申请结果 = 批准
ELSE IF 信用历史 = 良好 AND 收入水平 = 中等收入 THEN 信用申请结果 = 批准
ELSE IF 信用历史 = 一般 AND 是否有抵押物 = 有 THEN 信用申请结果 = 批准
ELSE IF 信用历史 = 一般 AND 是否有抵押物 = 无 THEN 信用申请结果 = 拒绝
ELSE IF 信用历史 = 差劣 THEN 信用申请结果 = 拒绝

在这个例子中,决策树根据申请者的年龄、收入水平、信用历史和是否有抵押物等特征,自动判断信用申请的结果。例如,如果申请者信用历史良好且收入水平高,那么系统会批准其信用申请;而如果信用历史一般但有抵押物,同样会批准。

这种决策树的应用使得信用评分系统能够自动化、可解释地做出信用决策,提高了效率同时保持了透明度。

三、决策表

决策表是一种以表格形式表现规则的工具,它非常适用于描述处理判断条件较多,各条件又相互组合、有多种决策方案的情况,决策表提供精确而简洁描述复杂逻辑的方式。

视图

img

img

使用excel

img

决策表的应用场景:

  1. 业务规则管理: 用于管理和维护大量的业务规则,使得业务规则的管理更加简便和直观。
  2. 风险评估: 在金融领域,可以使用决策表来定义风险评估规则,根据客户的不同特征进行信用评级。
  3. 产品定价: 在销售领域,可以使用决策表来制定产品定价策略,根据市场条件和产品特性进行灵活的定价。
  4. 合规性检查: 在法务和合规性领域,决策表可以用于定义符合法规的业务行为,确保组织的合规性。
  5. 推荐系统: 在电商领域,可以使用决策表来定义推荐算法的规则,根据用户的行为和喜好推荐相应的产品

电子商务促销活动管理系统决策表示例

假设我们有以下条件和操作:

  1. 用户类型: 普通用户(Regular)和会员用户(Premium)。
  2. 购物车金额: 低于100元(Low)和100元及以上(High)。
  3. 商品类别: 电子产品(Electronics)、服装(Apparel)、食品(Food)。
  4. 促销策略: 折扣(Discount)、满减(Cashback)、免费赠品(Free Gift)。

决策表:

用户类型 购物车金额 商品类别 触发促销策略 操作
普通用户 低金额 电子产品 折扣 应用10%折扣
普通用户 低金额 服装 满减 满200减20
普通用户 高金额 食品 免费赠品 赠送一份免费小吃
会员用户 高金额 电子产品 满减 满500减50
会员用户 低金额 服装 折扣 应用15%折扣
会员用户 高金额 食品 免费赠品 赠送一份免费礼包

在这个例子中,决策表根据用户类型、购物车金额和商品类别等条件定义了不同的促销策略。例如,对于普通用户购买低金额的电子产品,系统会应用10%的折扣;而对于会员用户购买高金额的电子产品,系统则会提供满减优惠。

这样的决策表使得促销活动管理系统能够根据多个条件智能地选择适当的促销策略,提高销售效果和用户满意度。

四、交叉决策表

交叉决策表又叫决策矩阵,是一种特殊类型的决策表。

与普通决策表相比,交叉决策表的条件由纵向和横向两个维度决定,而普通决策表的条件只是由纵向维度决定;但在普通决策表的动作部分可以是三种类型,分别是赋值、输出和执行方式,而在交叉决策表中动作部分就是纵向和横向两个维度交叉后的单元格的值,一般来说,这种交叉后单元格的值都是赋给某个变量或参数,所以交叉决策表的动作基本就一个,那就是赋值。

img

img

img

实际业务场景

假设我们正在开发一个智能家居系统,通过交叉决策表来确定何时触发不同设备的自动化操作。以下是一个简化的实际应用场景:

智能家居系统交叉决策表示例

考虑以下几个条件和设备:

  1. 时间段: 白天(Daytime)和夜晚(Nighttime)。
  2. 人员在家: 有人在家(Occupied)和无人在家(Unoccupied)。
  3. 光照程度: 光线充足(Well-lit)和光线不足(Dimly-lit)。
  4. 设备: 灯光(Lights)、温控器(Thermostat)、安全摄像头(Security Camera)。

交叉决策表:

时间段 人员在家 光照程度 触发设备 操作
白天 有人 光线充足 保持设备关闭
白天 有人 光线不足 灯光 打开灯光
白天 无人 灯光、温控器 打开灯光、调整温度
夜晚 有人 光线充足 保持设备关闭
夜晚 有人 光线不足 灯光 打开灯光
夜晚 无人 安全摄像头 打开安全摄像头

在这个例子中,交叉决策表综合考虑了时间段、人员在家与否以及光照程度等多个条件。根据这些条件的不同组合,系统可以智能地触发相应的设备操作,使智能家居系统更符合用户的实际需求。例如,在夜晚、有人在家、光线不足的情况下,系统可以自动打开灯光,提高家居的舒适性和安全性。

五、评分卡

评分是对个人或机构的相关信息进行分析之后的一种数值表达,表示此人或此机构由于信用活动的拒付行为所造成损失风险的可能性,评分通常用于对个人或机构的风险管理与评估。

img

假设我们正在构建一个贷款评分系统,使用评分卡来评估个人信用并决定是否批准其贷款申请。以下是一个简化的实际应用场景:

贷款评分卡示例

考虑以下特征和分数分配:

  1. 年龄: 20岁以下(0分)、20到30岁(10分)、30到40岁(20分)、40岁以上(30分)。

  2. 收入水平: 低收入(0分)、中等收入(15分)、高收入(30分)。

  3. 信用历史: 良好(30分)、一般(15分)、差劣(0分)。

  4. 负债比例: 低于30%(20分)、30%到50%(10分)、50%以上(0分)。

  5. 工作年限: 不足一年(0分)、1到5年(10分)、5年以上(20分)。

评分卡示例:

总分 = 年龄分 + 收入分 + 信用历史分 + 负债比例分 + 工作年限分

IF 总分 >= 70 THEN 批准贷款
ELSE IF 50 <= 总分 < 70 THEN 需要进一步审查
ELSE 批准贷款

在这个例子中,评分卡通过对申请者的年龄、收入水平、信用历史、负债比例和工作年限等特征进行分数分配,计算出总分。然后,系统通过总分的阈值来决定是否批准贷款。例如,总分大于等于70分的申请者可以直接批准贷款,而总分在50到70之间的申请者需要进一步审查。

这种评分卡的应用使得贷款决策更加客观、可量化,有助于提高贷款审批的效率和一致性。

现有规则引擎在业务端使用评估

  • 业务规则集适合简单IF - THEN逻辑业务和简单循环业务逻辑
  • 决策树适合简单IF - ELSE 带分支的简单业务逻辑使用
  • 复杂多条件场景想使用决策表或者评估卡来创建规则,更符合业务人员的使用习惯

如何使用规则引擎

sequenceDiagram
    participant BusinessUser as 业务人员
    participant BusinessIT as 业务IT人员
    participant Implementation as 公司实施人员
    
    BusinessUser ->> BusinessIT: 请求创建具体规则
    BusinessIT ->> Implementation: 使用规则引擎配置规则模板和规则包
    Implementation ->> BusinessIT: 完成规则配置
    BusinessIT ->> BusinessUser: 使用规则模板创建规则
    BusinessUser ->> BusinessIT: 提出规则调整需求
    BusinessIT ->> BusinessUser: 根据需求调整规则逻辑
    BusinessUser ->> BusinessIT: 动态创建和维护规则

在整个Saas系统中,涉及到三个主要角色:业务人员、业务IT人员和公司实施人员。以下是每个角色在规则引擎使用过程中的主要职责:

公司实施人员

  1. 规则集、决策树、决策表、交叉决策表、评估卡的规则包创建: 负责使用规则引擎的界面或工具,创建和配置规则集、决策树、决策表、交叉决策表、评估卡的规则包,以便后续的规则模板和规则创建。

  2. 业务规则模板的创建: 设计和创建通用的业务规则模板,为业务IT人员提供规则创建的基础结构和规范。

业务IT人员

  1. 规则创建: 根据公司实施人员配置好的规则模板和知识包,使用规则引擎的工具创建具体的业务规则,包括规则集、决策树、决策表、交叉决策表、评估卡等。

  2. 规则逻辑调整: 负责根据业务需求对已创建的规则进行逻辑调整,确保规则符合业务规则模板和公司实施人员的要求。

  3. 规则维护: 定期检查和更新规则,确保规则引擎中的规则集和决策树等结构始终与业务要求保持一致。

业务人员

  1. 业务规则调整: 在规则引擎的用户界面中,根据业务需求直接调整已创建的规则,例如修改决策表的条件或调整评估卡的分数等。

  2. 规则逻辑优化: 根据业务实际运作的反馈,提出对规则逻辑的优化建议,协助业务IT人员进行调整。

  3. 规则动态创建和维护: 在业务变化时,通过规则引擎的界面灵活地创建和维护规则,确保系统能够快速响应业务的变化。

这样的角色划分和职责分配可以使得规则引擎的使用更具灵活性和适应性,不同层次的用户可以专注于其核心职责,共同完成规则的创建和维护。

定制化业务

  • 部分更针对性业务模式由业务团队进行定制页面,如果需要更多定制指令由技术部开发

评论

博主关闭了当前页面的评论