【信贷风控技术十分钟精通17】模型验证2

目录

​编辑

模型验证

简介

影响因素

质量的评价

准确性(区分能力)

稳定性

目的

判断训练是否过拟合

判断模型性能随时间的稳定性


模型验证

简介

在评分模型的开发过程中、上线投产前及上线后的使用过程中,都需要对模型进行验证,以评估模型的性能,确保模型结果的正确性、准确性和有效性。

评分卡建模的一个基础问题是如何对模型的质量和效果进行评价,即什么样的模型是“好”模型、如何判断模型性能是否下降甚至失效,因此需要有一套具有可操作性的指标或维度来评价。

影响因素

评分卡模型通过评分度量违约可能性,通过历史样本训练模型,并使用训练好的模型对新的待打分样本评分,最关注的是给出的评分是否准确可靠。评分卡模型的本质是从历史样本中学习和提取映射关系,如果学习到的映射关系与新的待打分样本表现不一致,则意味着模型失效,给出的评分就不是准确可靠的。

实际上,在建模和模型使用过程中,经常遇到这样的情况:随着时间推移,训练的模型对于时间外样本的预测准确性下降,此时需要分析原因并给出优化建议。模型预测准确性下降主要有以下两方面原因。

  • 1)模型的问题:通常是模型训练过程存在过拟合,导致模型过度学习了训练样本中的非技术角度随机噪声,在打分样本上的泛化能力差。
  • 2)样本的问题:打分样本与训练样本分布存在本质差异,即样本不再具有同质性。

质量的评价

可以从技术和非技术两个角度对模型质量进行评价

评价角度 评价标准
技术角度
  • KS指标
  • Gini/AUC指标
  • 稳定性PSI指标
  • 提升度Lift指标
非技术角度
  • 安全性
  • 可解释性
  • 复杂度
  • 排序性
  • 分值集中度

从统计学习的技术角度来看,模型质量最核心的评价指标包含两部分。

准确性(区分能力)

这是从静态角度来看的,包括模型学习到的条件概率密度估计值与真实值是否一致,这里包含了置信区间和统计显著性两个概念,以及过拟合的概念。

稳定性

这是从动态角度来看的,包括对噪声的稳定性和对时间的稳定性,前者是内生因素,后者是外生因素。对于工程背景的分析师来说,可能会过分重视技术类评价指标,而忽视非技术评价指标。实际上,非技术性因素也是需要重点考虑的,包括如下5项。

  • 1)安全性:评分卡模型是否使用了有争议的变量(如性别、学历、民族、种族等),模型抗试探/攻击/操纵的能力如何。
  • 2)可解释性:入模变量是否有显著的业务含义,是否是真正的风险特征,变量趋势和业务理解一致。
  • 3)复杂度:通常金融业务中不建议使用太复杂的模型,在性能接近的情况下,模型越简单越好。模型简单的好处,首先是开发成本低,其次是模型上线后运行不容易出错,更易于维护,而且简单模型的稳定性一般比较好。
  • 4)排序性:排序性具有显著的业务含义(不像KS指标那么抽象),评分具有较好的排序能力,评分低的区域坏账率高,评分高的区域坏账率低,银行业务人员更加看重排序性指标。排序性没有严格的量化指标,通常可以使用分值最低档PD和分值最高档PD的比值,或者分值最低档PD与整体平均PD比值(即提升度Lift指标),作为定量描述性能力的指标。
  • 5)分值集中度:特别是低分值区域,需要控制单分值集中度不能过高,集中度过高容易因分值微小变化,导致通过率发生较大跳跃。

目的

模型验证的主要目的是评估模型的预测力,确保模型性能良好(不会出现性能显著下降甚至失效的情况)

判断训练是否过拟合

即对于同一时间段的不同样本是否具有一致的预测能力。在机器学习中判断训练是否过拟合的方法有很多,一般是看训练集和测试集模型KS等是否有显著差异。

模型验证阶段与模型训练阶段不同,在模型训练过程中,可以绘制学习曲线,即随着模型复杂度或者训练轮次的增加,预测损失的变化情况,来判断是否过拟合。而在模型验证阶段,通常只是基于已经训练好的模型,分别计算在训练集和测试集模型KS等性能指标判断是否过拟合。

判断模型性能随时间的稳定性

即判断模型在时间外样本上的表现是否仍然稳定和有效。

一般来说,在模型训练过程中,训练集和测试集上模型性能变化不会太大,而时间外样本上模型性能可能会下降。时间外样本模型性能下降的原因可能是复杂的,既有可能是样本本身分布发生了变化(样本不同质),也有可能是模型在时间内样本过拟合。

广义的稳定性概念包含过拟合,稳定包括时间内稳定和时间外稳定。

print('祝大家天天开心')

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-14 10:12:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-14 10:12:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-14 10:12:01       82 阅读
  4. Python语言-面向对象

    2024-02-14 10:12:01       91 阅读

热门阅读

  1. Docker之Oracle-XE版本安装

    2024-02-14 10:12:01       58 阅读
  2. Codeforces Round 887 (Div. 2)补题

    2024-02-14 10:12:01       62 阅读
  3. 数据结构+算法基本知识

    2024-02-14 10:12:01       50 阅读
  4. 【生产实测有效】Linux磁盘清理常用命令

    2024-02-14 10:12:01       48 阅读
  5. C语言静态库深入剖析

    2024-02-14 10:12:01       48 阅读
  6. Python Flask Web 框架学习笔记+完整项目

    2024-02-14 10:12:01       46 阅读
  7. 2024.2.6

    2024.2.6

    2024-02-14 10:12:01      43 阅读
  8. STM32面试相关问题

    2024-02-14 10:12:01       46 阅读
  9. Node.js开发-fs模块

    2024-02-14 10:12:01       46 阅读
  10. Node.js基础---path路径模块

    2024-02-14 10:12:01       52 阅读