第 93 章 信用卡欺诈用例
财务行业使用 pragmatic AI 在多个领域进行决策。个领域是信用卡的收费。当客户在信用卡中识别错误或未识别的收费时,客户可能会争取费用。在某些情况下,在某些情况下,需要人为信用卡欺诈的问题,但大多数报告的信用卡欺诈都是完全或部分被攻击的 AI 解析。
该使用案例例子涉及到了 Fortress Bank、银行客户 Joe 和业务流程管理(BPM)开发人员 Michelle。首先,我们将了解银行最初使用红帽流程自动化管理器数字决策使用 AI,随后我们将了解通过机器学习创建的可预测模型标记语言(PMML)模式如何增强决策模型。
Tensorflow™ 和 R™ 等机器学习模型会产生预测模型。您可以在开放式标准(如 PMML)中保存这些预测模型,以便您可以在 Red Hat Process Automation Manager 或者支持 PMML 标准的其他产品中使用模型。
Red Hat Process Automation Manager 和 Red Hat OpenShift Container Platform
Fortress Bank 在红帽 OpenShift Container Platform 上使用红帽流程自动化管理器来开发和运行 Fortress Bank 决策服务。Red Hat OpenShift Container Platform 是用于开发和运行容器化应用程序的云平台。它旨在使支持它们的应用程序和数据中心从几个机器和应用程序扩展到为数百万客户端服务的数千台机器。Red Hat Process Automation Manager 是用于创建云原生业务自动化应用程序和微服务的红帽中间件平台。它使企业业务和 IT 用户能够记录、模拟、管理、自动化和监控业务流程和决策。Business Central 是 Red Hat Process Automation Manager 仪表板。
使用 Red Hat Process Automation Manager 进行数十个数字决策
joe 是 Fortress Bank 客户。每个月,他登录 Fortress Bank 网站,以便在向其付费之前查看所有费用。这个月,Joe 认为他识别的事务不正确,但数量不正确。供应商支付了 $44.50,而不是 $4.50。joe 选择包含不正确的项的行,并点击 Dispute。
此操作启动一系列有关争议的问题:
- 您为什么会接受这些交易?
- 您的卡是否全时过?
- 您是否有任何其他方面告诉我们这个争议?
在 Joe 回答问题后,网站为 Joe 提供了事件编号 000004。
现在,Fortress 银行必须决定是否在未经人工调查,还是手动调查申索。手动调查需要更多资源,从而自动处理银行在人力资源方面的成本较低。但是,如果银行自动接受所有争议的金额,由于用于欺诈的申索,成本最终将给银行更大。无论是否要调查对象,还是需要做出决定。
信用卡 Dispute 项目
为了帮助这一决策,Fortress 银行使用 Business Central 创建具有商业中心的 VarnishCardDisputeCase 项目,其中包含模型争议过程的 fraudDispute 业务流程。
进程变量
当 Joe 报告了争议时,使用问题单 ID FR-00000004 创建 fraudDispute 进程的实例。Process Variables 选项卡包含多个特定于 Joe 帐户的变量和值,包括 CaseID、caseFile_cardholderRiskRiskRiskRating (信用卡拥有者风险评级)和 caseFile_disputeRiskRating (这种披露的风险评级):
该表还具有带有值 true 的 casefile_automated 变量。这代表争议满足要自动处理的条件。
进程图
Diagram 选项卡包含 BPMN 图,显示银行在决定自动或手动处理的决策路径时:
Decision Task 任务包含规则,它会根据 caseFile_cardholderRiskRating 和 caseFile_disputeRiskating 变量以及 caseFile_disputeRisk ating 变量自动收费。如果 Joe 的争论与自动批准条件匹配,则M Milestone 1 跟着批准,争取的金额会被退还给客户。这种子流程非常精益且高效。如果 Joe 的争议需要手动评估,Me Milestone 2 的子进程将启动,这需要某些人人参与,并需要更多的资源来处理。
在这种情况下,决策任务任务 决定处理 Joe 的吞吐量,因此它遵循 Milestone 1: Automatic the。
DMN 模型
以下简化的 DMN 模型显示作为 fraudDispute Decision 任务 一部分的决策过程:
输入变量为 Age (通配符年龄)、Incident Count (此卡拥有者的前声数)、卡拥有者状态 (silver、gold、platinum)和 Fraud Amount。
Red Hat Process Automation Manager 在决策表中使用输入变量来支持数字决策。决策表由人类业务分析创建。分析师创建案例商业要求分析文档或电子表格,供用户进行审查和审批。然后,项目设计人员使用 Business Central DMN 编辑器将分析文档中的数据传输到 DMN 模型。Fortress Bank Cost Card Dispute process 有两个决定表,即 卡拥有者风险 等级表和 Dispute Risk Rating 表。Cardholder Risk Rating 表包含三个输入变量: Incident Count、cardholder Status 和 Age。Dispute Risk Rating 表包含 卡拥有者状态 输入变量。表根据 cardholder 状态和吞吐量的数量计算 dispute 的风险。
卡持有者风险等级
joe 是 25 倍的 Silver 卡拥有者。他曾有两个争议,因此风险等级为 2。如果 Joe 之前没有争议,则风险评级为 0。
争议风险等级
由于 Joe 是 Silver 卡拥有者,因此Joe 在 Dispute Risk Rating 表上有一个 1 评级为 1。如果数量达到 $140,Joe 将存在风险评级为 2。
以下公式是作为 DMN 模型中 进程自动 最终决策的一部分实现的,使用两个决策表中的分数来确定是否自动收取争议的金额(Milestone1),还是需要更多的调查(1)。
(Cardholder Risk Rating + Dispute Risk Rating) < 5
(Cardholder Risk Rating + Dispute Risk Rating) < 5
如果 Joe 的总体风险分数小于 5,则会自动收费其数量(Milestone 1)。如果总分数为 5 或更高,则其争议会手动处理(Milestone 2)。
在 Red Hat Process Automation Manager 中添加机器学习
由于 Fortress Bank 对客户有历史数据,包括以前的交易和争议历史,因此该银行可通过机器学习来创建可在 DMN 模型决策任务中使用的预测模型。与业务分析师创建的决策表相比,这会产生更加准确的评估风险。
fortress Bank 具有两组 PMML 文件,其中包含可更准确评估风险预测的模型。一个集合基于线性回归算法,另一个基于随机的林算法。
线性回归是统计数据和机器学习中最广泛使用的算法之一。它使用一个线性 equation 来组合一组数字输入和输出值。随机林将许多决策树用作创建预测模型的输入。
添加 PMML 文件
Michelle 将 dispute_risk_linear_regression PMML 文件导入到 her 项目中。她将 卡拥有者风险模型 识别节点添加到 DMN 模型中,并将 dispute_risk_linear_regression PMML 文件与节点相关联。Red Hat Process Automation Manager 分析 PMML 文件,并将输入参数添加到节点。Michelle 将 卡拥有者风险模型 节点与 Dispute Risk Rating 关联。
然后,Michelle 将 credit_card_holder_risk_linear_regression PMML 模型添加到项目中,创建 Dispute Risk Model mode DMN 文件,创建并关联 credit_card_holder_linear_regression PMML 文件。Red Hat Process Automation Manager 分析 PMML 文件,并将输入参数添加到节点。
下图为 Michelle 的已完成 DMN 模型,它可将分析决策表替换为 PMML 文件中的预测模型:
Michelle 现在返回到 fraudDispute BPMN 模型,并使用添加的 PMML 文件更新模型。然后 she 重新部署项目。
增加分数准确度
在这个新场景中,Michelle 重新部署了 Fortress Bank 项目,使用 PMML 模式,我们可以发现 Joe 日志到他的 Fortress Bank 帐户并报告与错误相同的事务时。在 Business Central 中,Michelle 进入 Process Instances 窗口,她看 Joe 的新争议实例。在 Process Variables 选项卡中,Michelle 审查了 卡HolderRiskRating 的值以及 争议的RiskRating。它们已改变,因为模型现在使用 PMML 文件。这通过使用基于历史数据的机器学习模型提供更加精确的风险预测。同时,银行策略仍由 DMN 决策模型实施:风险预测低于指定阈值,允许此争议自动处理。
监控
最后,Fortress Bank 使用 Prometheus 收集有关信用卡争端和 Grafana 的指标,以实时可视化这些指标。monitor 的上半部分显示业务指标关键性能指标(KPI),下面部分显示了操作指标 KPI。
93.1. 使用带有 DMN 模型的 PMML 模型来解决信用卡事务争端 复制链接链接已复制到粘贴板!
这个示例演示了如何使用 Red Hat Process Automation Manager 创建使用 PMML 模型解决信用卡事务争端的 DMN 模型。当客户争取信用卡交易时,系统会决定是否自动处理事务。
先决条件
Red Hat Process Automation Manager 可用,以下 JAR 文件已添加到
~/kie-server.war/WEB-INF/lib和~/business-central.war/WEB-INF/lib目录中:kie-dmn-jpmml-7.67.0.Final-redhat-00024.jar此文件位于红帽客户门户网站的软件 下载页面中 的 Red Hat Decision Manager 7.13 Maven 存储库分发中(需要登录)。此文件的组 ID、工件 ID 和版本(GAV)标识符是
org.kie:kie-dmn-jpmml:7.67.0.Final-redhat-00024。如需更多信息,请参阅 Business Central 的 DMN 文件中的"Including PMML 模型"部分 使用 DMN 模型设计决策服务。- JPMML Evaluator 1.5.1 JAR 文件
JPMML Evaluator Extensions 1.5.1 JAR 文件
在 KIE 服务器和 Business Central 中启用 JPMML 评估需要这些文件。
重要红帽支持与 PMML(JPMML)的 Java Evaluator API 集成,以便在 Red Hat Process Automation Manager 中进行 PMML 执行。但是,红帽不支持 JPMML 库。如果您在 Red Hat Process Automation Manager 发行版本中包括 JPMML 库,请参阅 JPMML 的 Openscoring.io 许可条款。
流程
-
创建
dtree_risk_predictor.pmml文件,其中包含 第 93.2 节 “信用卡事务事务练习 PMML 文件” 中 XML 示例的内容。 在 Business Central 中,创建 telemetry 卡 Dispute 项目:
-
导航到 Menu
Design Projects。 - 单击 Add Project。
-
在 Name 框中,输入
credit Card Dispute并点 Add。
-
导航到 Menu
在转换 卡 Dispute 项目的 assets 窗口中,将
dtree_risk_predictor.pmml文件导入com软件包:
- 单击 Import Asset。
在 Create new Import Asset 对话框中,在 Name 框中输入
dtree_risk_predictor,从 Package 菜单中选择 com,选择dtree_risk_predictor.pmml文件,然后单击 OK。dtree_risk_predictor.pmml文件的内容会出现在 Overview 窗口中。
在 com 软件包中创建 Dispute Transaction Check DMN 模型:
- 要返回项目窗口,请在面包 导航栏尾部点击 credit Card Dispute。
- 点 Add Asset。
- 在资产库中点 DMN。
在 Create new DMN 对话框中,在 Name 框中输入
Dispute Transaction Check,从 Package 菜单中选择 com,然后单击 OK。DMN 编辑器会打开,并附带 Dispute Transaction Check DMN 模型。
创建 tTransaction 自定义数据类型:
- 点 Data Types 选项卡。
- 点 Add a custom Data Type。
-
在 Name 框中输入
tTransaction。 - 从 Type 菜单中选择 Structure。
要创建数据类型,请单击检查标记。
tTransaction 自定义数据类型显示一个变量行。
-
在变量行的 Name 字段中输入
transaction_amount,从 Type 菜单中选择 Number,然后单击复选标记。 -
要添加新变量行,请单击
transaction_amount行上的加号符号。此时会出现一个新行。 -
在 Name 字段中输入
cardholder_identifier,从 Type 菜单中选择 Number,然后点检查标记。
添加 风险 Predictor
dtree_risk_predictor.pmml模型:
- 在 DMN 编辑器的 已包含模型 窗口中,点 Include Model。
-
在 Include Model 对话框中,从 Models 菜单中选择
dtree_risk_predictor.pmml。 -
在 Provide a unique name box 中输入
Risk Predictor,然后单击 OK。
使用 风险预测器和 DecisionTreeClassifier 模型创建 风险预测 商业知识模型(BKM)节点:
在 DMN 编辑器的模型窗口中,将 BKM 节点拖到 DMN 编辑器面板。
- 重命名节点 风险预测。
点节点左侧的 trash can 图标下的编辑图标。
- 在 Risk Predictor 框中点 F,然后从 Select Function Kind 菜单中选择 PMML。F 对 P 的更改。
- 双击 First select PMML 文档 框,然后选择 Risk Predictor。
- 双击 Second select PMML model 框,然后选择 DecisionTreeClassifier。
- 要返回 DMN 编辑器面板,请点击 Back to Dispute Transaction Check。
使用数据类型 t Transaction 创建事务输入数据节点:
在 DMN 编辑器的 Model 窗口中,将输入数据节点拖到 DMN 编辑器面板。
- 重命名节点 事务。
- 选择节点,然后单击窗口右上角的属性铅笔图标。
-
在 Properties 面板中,选择 Information Item
Data type tTransaction,然后关闭面板。
创建 事务风险 决策节点,并为该功能添加 事务 节点以进行数据输入 和风险预测 节点:
在 DMN 编辑器的模型窗口中,将决策数据节点拖到 DMN 编辑器面板。
- 重命名节点 事务 Dispute Risk。
- 选择 风险预测 节点,并将箭头从节点右上角拖到 Transaction Dispute risk 节点。
- 选择 事务 节点并将箭头从节点右边拖到 事务 Dispute risk 节点。
在 事务 Dispute Risk node 中,创建 风险预测器 调用功能:
- 选择 事务 Dispute Risk 节点,再单击节点左侧的编辑图标。
- 点 Select expression,再从菜单中选择 Invocation。
- 在 Enter 功能 框中输入风险预测器。
- 点 P1。
-
在 Edit Parameter 对话框中,在 Name 框中输入 数量,从 Data Type 菜单中选择数字,然后按 Enter 键。
- 单击 Select expression,再从菜单中选择 Literal 表达式。
-
在数量 旁边的复选框,输入
Transaction.transaction_ amount。 - 右键单击 1,然后在下面选择" 插入"。这会打开 Edit Parameter 对话框。
- 在 Name 框中输入 holder_index,从 Data Type 菜单中选择 number,然后按 Enter 键。
- 单击行 2 上的 Select 表达式,再从菜单中选择 Literal 表达式。
-
在 数量 旁边的框中输入
Transaction.cardholder_identifier。
使用数据类型 号 创建 Risk Threshold 输入数据节点:
- 在 DMN 编辑器的 Model 窗口中,将输入数据节点拖到 DMN 编辑器面板。
- 重命名节点 风险阈值。
- 选择节点,然后单击窗口右上角的属性铅笔图标。
-
在 Properties 面板中,选择 Information Item
Data type number,然后关闭面板。
创建可 自动处理? 决定节点作为输入 事务 Dispute 风险 和风险 阈值 节点:
- 将决策节点拖到 DMN 编辑器面板并将其重命名为 可自动处理?
- 选择该节点,然后单击节点左上角的编辑图标。
- 单击 Select expression,然后从菜单选择 Literal 表达式。
-
在方框中输入
Transaction Dispute Risk.predicted_dispute_ risk < Risk Threshold。 - 选择 事务 Dispute Risk 节点,将节点左上角的箭头拖到 可以自动处理? 节点。
- 选择 Risk Threshold 节点,将箭头从节点左下角拖到 可以自动处理? 节点。
保存模型并构建项目:
- 在 DMN 编辑器中,点 Save。
- 如有必要,更正出现的任何错误。
- 要返回项目窗口,请在面包 导航栏尾部点击 credit Card Dispute。
- 单击 Build。该项目应该能成功构建。
添加并运行测试场景:
- 点 Add Asset。
- 选择 Test Scenario。
-
在 Create new Test Scenario 对话框中,输入名称
Test Dispute Transaction Check,从 Package 菜单中选择 com,然后选择 DMN。 - 从选择 DMN 资产 菜单中选择 Dispute Transaction Check.dmn 并点 OK。测试模板构建。
输入以下值并点击 Save :
注意不要在 Transaction Dispute Risk 列中添加一个值。这个值由测试场景决定。
Expand 表 93.1. 测试场景参数 描述 risk Threshold cardholder_identifier transaction_amount 是否可以自动处理? 风险阈值 5,自动处理
5
1234
1000
true
风险阈值 4、数量 = 1000,没有处理
4
1234
1000
false
风险阈值 4、数量 = 180,自动处理
4
1234
180
true
风险阈值 1、数量 = 1,未处理
1
1234
1
false
- 要运行测试,请单击 Validate 右侧的 Play 按钮。结果会显示在屏幕右侧的 Test Report 面板中。