【MLOps】第 9 章 : MLOps 实践:消费者信用风险管理

2023-10-21 18:40

本文主要是介绍【MLOps】第 9 章 : MLOps 实践:消费者信用风险管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎

📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃

🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​

📣系列专栏 - 机器学习【ML】 自然语言处理【NLP】  深度学习【DL】

​​

 🖍foreword

✔说明⇢本人讲解主要包括Python、机器学习(ML)、深度学习(DL)、自然语言处理(NLP)等内容。

如果你对这个系列感兴趣的话,可以关注订阅哟👋

文章目录

背景:业务用例

模型开发

模型偏差注意事项

准备生产

部署到生产

总结


在本文的最后几章中,我们探讨了 MLOps 在实践中可能是什么样子的三个例子。我们明确选择这三个示例,因为它们代表了根本不同的机器学习用例,并说明了 MLOps 方法可能如何不同以适应业务及其 ML 模型生命周期实践的需求。

背景:业务用例

当消费者要求贷款时,信贷机构必须决定是否给予贷款。根据具体情况,流程中的自动化程度可能会有所不同。然而,决策很可能是根据评估贷款按预期偿还或不偿还的概率的分数来决定的。

分数通常用于该过程的不同阶段:

  • 在预筛选阶段,通过少量特征计算出的分数可以让机构快速放弃一些申请。

  • 在承保阶段,根据所有所需信息计算出的分数为决策提供了更精确的基础。

  • 承保阶段之后,分数可用于评估与投资组合中的贷款相关的风险。

数十年来一直使用分析方法来计算这些概率。例如,美国从 1995 年开始使用 FICO 评分。鉴于它们对机构收入和客户生活的直接影响,这些预测模型一直受到严格审查。因此,流程、方法和技能已经正式化为高度规范的环境,以确保模型的可持续性能。

无论模型是基于专家制定的规则、经典统计模型还是最新的机器学习算法,它们都必须遵守类似的规定。因此,消费者信用风险管理可以被视为 MLOps 的先驱:与其他用例的平行以及最佳实践可以基于此用例进行分析。

在做出信贷决策时,通常可以获得有关客户的历史和当前情况的信息。客户持有多少信用?客户是否曾经未偿还过贷款(用信贷术语来说,客户是否属于拖欠贷款)?在某些国家/地区,称为信用局的组织会收集此信息,并直接或通过分数(如上述 FICO 分数)的形式将其提供给债权人。

待预测目标的定义更为复杂。客户未按预期还款是信用风险模型中的“坏”结果。理论上,应该等待完全还款来确定“好”结果,并等待损失冲销来确定“坏”结果。然而,获得这些最终数据可能需要很长时间,而等待它们会阻碍人们对不断变化的情况做出反应。因此,通常会根据各种指标进行权衡,在损失确定之前宣布“坏”结果。

模型开发

从历史上看,信用风险建模基于基于规则的混合(现代 ML 术语中的“手动特征工程”)和逻辑回归。专业知识对于创建良好的模型至关重要。建立适应性的客户细分以及研究每个变量的影响和变量之间的相互作用需要大量的时间和精力。结合先进的技术,如带偏移的两阶段模型、先进的一般线性模型一方面基于 Tweedie 分布或单调性约束,另一方面基于金融风险管理技术,这使得该领域成为精算师的游乐场。

像 XGBoost 这样的梯度增强算法降低了构建良好模型的成本。然而,黑盒效应使它们的验证变得更加复杂:无论输入如何,都很难感觉到此类模型会给出合理的结果。尽管如此,信用风险建模人员已经学会了使用和验证这些新型模型。他们开发了新的验证方法,例如,基于个人解释(例如,Shapley 值)来构建相信他们的模型,这是 MLOps 的一个重要组成部分,正如我们在本书中所探讨的那样。

模型偏差注意事项

建模者还必须考虑选择偏差,因为模型将不可避免地用于拒绝申请人。因此,获得贷款的人群不能代表申请人群。

通过不加注意地对先前模型版本选择的人群训练模型版本,数据科学家将使模型无法准确预测被拒绝的人群,因为它没有出现在训练数据集中,而这正是预期的该模型。这种效应称为樱桃采摘。因此,必须使用特殊方法,例如根据申请人群体重新加权或根据外部数据校准模型。

型号用于风险评估,而不仅仅是做出发放贷款的决定,必须产生概率,而不仅仅是是/否结果。通常,预测模型直接产生的概率并不准确。虽然数据科学家应用阈值来获得二元分类不是问题,但他们通常需要一种称为校准的单调转换恢复根据历史数据评估的“真实”概率。

该模型此用例的验证通常包括:

准备生产

鉴于信用风险模型的重大影响,其验证过程涉及与生命周期的建模部分相关的重要工作,它包括以下方面的完整文档:

  • 使用的数据

  • 模型和构建模型的假设

  • 验证方法和验证结果

  • 监测方法

监测方法在这种情况下有两个方面:数据和性能漂移。由于预测和获得基本事实之间的延迟很长(通常是贷款期限加上几个月以考虑延迟付款),仅监控模型性能是不够的:还必须仔细监控数据漂移。

例如,如果发生经济衰退或商业政策发生变化,申请人群很可能会发生变化,以至于在没有进一步验证的情况下无法保证模型的性能。数据漂移为通常执行按客户群划分,并采用通用统计指标来衡量之间的距离概率分布(如 Kolmogorov-Smirnov 或 Wasserstein 距离)以及特定于金融服务的指标,如人口稳定性指数和特征稳定性指数。还定期评估具有通用指标 (AUC) 或特定指标(Kolmogorov-Smirnov、Gini)的子群体的性能漂移。

模型文档通常由 MRM 团队以非常正式和独立的流程进行审查。这种独立审查是确保向模型开发团队提出正确问题的良好做法。在某些关键情况下,验证团队可能会根据文档从头开始重建模型。在某些情况下,第二次实施是使用替代技术来建立对模型的文档化理解的信心,并突出显示源自原始工具集的未发现错误。

复杂且耗时的模型验证过程会对整个 MLOps 生命周期产生影响。如此冗长的 QA 无法进行快速修复和快速模型迭代,并且会导致非常缓慢且经过深思熟虑的 MLOps 生命周期。

部署到生产

在一个典型的大的金融服务在组织中,生产环境不仅与设计环境分离,而且还可能基于不同的技术堆栈。关键操作的技术栈——比如交易验证,还有潜在的贷款验证——总是会缓慢发展。

从历史上看,生产环境主要支持逻辑回归等规则和线性模型。有些可以处理更复杂的模型,例如 PMML 或 JAR 文件。对于不太重要的用例,Docker部署或通过集成数据科学和机器学习平台进行部署是可能的。因此,模型的操作化可能涉及从单击按钮到基于 Microsoft Word 文档编写公式的操作。

已部署模型的活动日志记录对于监控此类高价值用例中的模型性能至关重要。根据监控的频率,反馈循环可能是自动化的,也可能不是自动化的。例如,如果任务每年只执行一次或两次,并且大部分时间都花在询问数据问题上,则可能不需要自动化。另一方面,如果每周进行一次评估,自动化可能是必不可少的,对于期限为几个月的短期贷款来说可能就是这种情况。

总结

几十年来,金融服务一直在开发预测模型验证和监控方案。他们已经能够不断适应新的建模技术,如梯度提升方法。鉴于它们的重要影响,围绕这些模型的生命周期管理的流程已经正式化,甚至纳入了许多法规。因此,它们可以成为其他领域 MLOps 最佳实践的来源,尽管需要进行调整,因为一方面的稳健性和成本效率、价值实现时间以及(重要的)另一方面的团队挫败感之间的权衡可能在其他业务中有所不同。

这篇关于【MLOps】第 9 章 : MLOps 实践:消费者信用风险管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/256224

相关文章

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

Spring Security 前后端分离场景下的会话并发管理

《SpringSecurity前后端分离场景下的会话并发管理》本文介绍了在前后端分离架构下实现SpringSecurity会话并发管理的问题,传统Web开发中只需简单配置sessionManage... 目录背景分析传统 web 开发中的 sessionManagement 入口ConcurrentSess

Java整合Protocol Buffers实现高效数据序列化实践

《Java整合ProtocolBuffers实现高效数据序列化实践》ProtocolBuffers是Google开发的一种语言中立、平台中立、可扩展的结构化数据序列化机制,类似于XML但更小、更快... 目录一、Protocol Buffers简介1.1 什么是Protocol Buffers1.2 Pro

linux安装、更新、卸载anaconda实践

《linux安装、更新、卸载anaconda实践》Anaconda是基于conda的科学计算环境,集成1400+包及依赖,安装需下载脚本、接受协议、设置路径、配置环境变量,更新与卸载通过conda命令... 目录随意找一个目录下载安装脚本检查许可证协议,ENTER就可以安装完毕之后激活anaconda安装更

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

MySQL数据类型与表操作全指南( 从基础到高级实践)

《MySQL数据类型与表操作全指南(从基础到高级实践)》本文详解MySQL数据类型分类(数值、日期/时间、字符串)及表操作(创建、修改、维护),涵盖优化技巧如数据类型选择、备份、分区,强调规范设计与... 目录mysql数据类型详解数值类型日期时间类型字符串类型表操作全解析创建表修改表结构添加列修改列删除列

Python自定义异常的全面指南(入门到实践)

《Python自定义异常的全面指南(入门到实践)》想象你正在开发一个银行系统,用户转账时余额不足,如果直接抛出ValueError,调用方很难区分是金额格式错误还是余额不足,这正是Python自定义异... 目录引言:为什么需要自定义异常一、异常基础:先搞懂python的异常体系1.1 异常是什么?1.2

深入解析Java NIO在高并发场景下的性能优化实践指南

《深入解析JavaNIO在高并发场景下的性能优化实践指南》随着互联网业务不断演进,对高并发、低延时网络服务的需求日益增长,本文将深入解析JavaNIO在高并发场景下的性能优化方法,希望对大家有所帮助... 目录简介一、技术背景与应用场景二、核心原理深入分析2.1 Selector多路复用2.2 Buffer