信贷风控规则策略累计增益lift测算

news2025/6/4 9:26:38

在大数据风控业务实践过程中,目前业内主要还是采用规则叠加的办法做策略,但是会遇到一些问题:
1.我们有10条规则,我上了前7条后,后面3条的绝对风险增益是多少?
2.我的规则之间应该做排序吗,最重要的放在前面?
3.规则重合了怎么办,我又想收风险又想保留较高批核怎么办?
4.我应用完所有的规则后,金额逾期风险能下降到什么水平?
因此,我们按规则的重要性(lift高且抓坏规模大)将规则封装,再按照循环做逐个碰撞,计算由先到后每个规则的绝对增益。

本篇代码的优点是:就能充分确保后面的规则不因为前面的规则而丧失效率,批核能全部用在刀刃上,规则不重合,计算不同口径Y指标下的风险情况,风险目标更清晰准确的预算。
本文是代码交流,里面的策略阈值都为虚构。

定义规则并应用

rules = [  
    ('1_rhzx_nnm_over_acct>11', lambda row: row['rhzx_nnm_over_acct'] > 11),  
    ('2_rhzx_nnm_over_cnt>=22', lambda row: row['rhzx_nnm_over_cnt'] >= 22), 
    ('3_multi_final_level>=33', lambda row: row['multi_final_level'] >=33),  
    # 可以添加更多规则...  
]  

定义一个计算金额逾期风险的函数

def cal_risk2(df2):  
    total_fm7_amt = df2['fpd_fm7_amt'].sum()  
    total_fz7_amt = df2['fpd_fz7_amt'].sum()  
    total_mob4m2fenmu_amt = df2['mob4m2fenmu_amt'].sum()  
    total_mob4m2fenzi_amt = df2['mob4m2fenzi_amt'].sum() 
    return total_fz7_amt / total_fm7_amt if total_fm7_amt > 0 else 0,total_mob4m2fenzi_amt / total_mob4m2fenmu_amt if total_mob4m2fenmu_amt > 0 else 0   

应用规则并计算边际风险压降效果

def cal_risk_lift(current_df):  
	results2=[]
	results2 = [  
		{  
			'Rule': 'Baseline',  
			'Touched_Count': len(current_df),  
			'Due_FPD7_Amt': round(float(current_df['fpd_fm7_amt'].sum()),2),  
			'FPD_Fz7_Amt': current_df['fpd_fz7_amt'].sum(), 
			'命中_$FPD7': current_df['fpd_fz7_amt'].sum()/ current_df['fpd_fm7_amt'].sum(),         
			'命中_$MOB4M2': current_df['mob4m2fenzi_amt'].sum()/ current_df['mob4m2fenmu_amt'].sum(),    
			'应用规则后_$FPD7': cal_risk2(current_df)[0],
			'应用规则后_$MOB4M2': cal_risk2(current_df)[1] 
		}  
	] 
	for i, (rule_name, rule_func) in enumerate(rules, start=1):  
		touched_loans = current_df[current_df.apply(rule_func, axis=1)]  
		touched_loan_ids = set(touched_loans['loan_id'].unique())  	
		# 计算被规则触碰的贷款数据的到期金额和逾期金额  
		new_fm7_amount = round(touched_loans['fpd_fm7_amt'].sum() ,2) 
		new_fz7_amount = touched_loans['fpd_fz7_amt'].sum()  
		new_mob4m2fm_amt = touched_loans['mob4m2fenmu_amt'].sum()  
		new_mob4m2fz_amt = touched_loans['mob4m2fenzi_amt'].sum()    
	
		# 计算剩余贷款的风险情况(在应用当前规则之后,以借据为唯一主键)  
		remaining_df = current_df[~current_df['loan_id'].isin(touched_loan_ids)]  
		new_df_risk = cal_risk2(remaining_df) if not remaining_df.empty else 0  
		# 记录结果  
		results2.append({  
			'Rule': rule_name,  
			'Touched_Count': len(touched_loan_ids),  
			'Due_FPD7_Amt': new_fm7_amount,  
			'FPD_Fz7_Amt': new_fz7_amount,  
			'命中_$FPD7': new_fz7_amount/new_fm7_amount, 
			'命中_$MOB4M2': new_mob4m2fz_amt/new_mob4m2fm_amt,### 展示纯新增命中
		# '命中_$MOB4M2': df['mob4m2fenzi_amt'].sum()/df['mob4m2fenmu_amt'].sum(),## 展示总命中
			'应用规则后_$FPD7': new_df_risk[0],
			'应用规则后_$MOB4M2': new_df_risk[1] 
		})  
		# 更新current_df以反映应用规则后的效果
		current_df = remaining_df  
	# 将结果转换为DataFrame  
	results_df = pd.DataFrame(results2)
	return results_df

于是我们可以按分组group来统计规则的累计lift了

data6.groupby(['xj_sxdurseg']).apply(cal_risk_lift)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2396701.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【笔记】Windows 部署 Suna 开源项目完整流程记录

#工作记录 因篇幅有限,所有涉及处理步骤的详细处理办法请参考文末资料。 Microsoft Windows [Version 10.0.27868.1000] (c) Microsoft Corporation. All rights reserved.(suna-py3.12) F:\PythonProjects\suna>python setup.py --admin███████╗██╗…

【Elasticsearch】Elasticsearch 核心技术(一):索引

Elasticsearch 核心技术(一):索引 1.索引的定义2.索引的命名规范3.索引的增、删、改、查3.1 创建索引3.1.1 创建空索引 3.2 删除索引3.3 文档操作3.3.1 添加/更新文档(指定ID)3.3.2 添加文档(自动生成ID&am…

Fullstack 面试复习笔记:操作系统 / 网络 / HTTP / 设计模式梳理

Fullstack 面试复习笔记:操作系统 / 网络 / HTTP / 设计模式梳理 面试周期就是要根据JD调整准备内容(挠头),最近会混合复习针对全栈这块的内容,目前是根据受伤的JD,优先选择一些基础的操作系统、Java、Nod…

中科院报道铁电液晶:从实验室突破到多场景应用展望

2020年的时候,相信很多关注科技前沿的朋友都注意到,中国科学院一篇报道聚焦一项有望改写显示产业格局的新技术 —— 铁电液晶(FeLC)。这项被业内称为 "下一代显示核心材料" 的研究,究竟取得了哪些实质性进展…

智慧政务标准规范介绍:构建高效、协同的政务信息体系

在当今信息化快速发展的时代,智慧政务作为政府数字化转型的重要方向,正逐步改变着政府管理和服务的方式。为了确保智慧政务系统的建设能够有序、高效地进行,国家制定了一系列标准规范,其中GB∕T 21062系列标准《政务信息资源交换体…

手机照片太多了存哪里?

手机相册里塞满了旅行照片、生活碎片,每次清理都舍不得删?NAS——一款超实用的存储方案,让你的回忆安全又有序~ 1️⃣自动备份解放双手 手机 / 电脑 / 相机照片全自动同步到 NAS,再也不用手动传文件 2️⃣远程访问像…

OpenRouter使用指南

OpenRouter 是一个专注于大模型(LLM)API 聚合和路由的服务平台,旨在帮助开发者便捷地访问多种主流大语言模型(如 GPT-4、Claude、Llama 等),并提供统一的接口、成本优化和智能路由功能。以下是它的核心功能…

【优选算法 | 队列 BFS】构建搜索流程的核心思维

算法相关知识点可以通过点击以下链接进行学习一起加油!双指针滑动窗口二分查找前缀和位运算模拟链表哈希表字符串模拟栈模拟(非单调栈)优先级队列 很多人学 BFS 的时候都知道“用队列”,但为什么一定是队列?它到底在整个搜索流程中起了什么作…

设计模式(行为型)-中介者模式

目录 定义 类图结构展示 角色职责详解 模式的优缺点分析 优点 缺点 适用场景 应用实例 与其他模式的结合与拓展 总结 定义 中介者模式的核心思想可以概括为:用一个中介对象来封装一系列的对象交互。这个中介者就像一个通信枢纽,使各对象不需要…

【Java学习笔记】异常

异常(Exception) 一、基本介绍 在 Java 程序中,将运行中发生的不正常情况称为 “异常”,开发过程中的语法错误和运行时发生的异常情况是不一样的。 二、异常的分类 1. Error(错误):Java 虚拟…

MySQL:视图+用户管理+访问+连接池原理

一、视图 视图是一个虚拟表,其内容由查询定义。同真实的表一样(相当于是把查询的内容当成一个临时表来使用),视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。 1.1 为…

neo4j 5.19.0安装、apoc csv导入导出 及相关问题处理

前言 突然有需求需要用apoc 导入 低版本的图谱数据,网上资料又比较少,所以就看官网资料并处理了apoc 导入的一些问题。 相关地址 apoc 官方安装网址 apoc 官方导出csv 教程地址 apoc 官方 导入 csv 地址 docker 安装 执行如下命令启动镜像 doc…

无人机桥梁3D建模的拍摄频率

无人机桥梁3D建模的拍摄频率 无人机桥梁3D建模的拍摄频率(每秒拍摄照片数)需根据建模精度、飞行速度、相机性能等因素综合确定。以下是专业级作业的详细参数分析: 1. 核心计算公式 拍摄频率(fps) \frac{飞行速度&…

ESP32-idf学习(三)esp32C3连接iot

一、前言 上一篇用蓝牙作为通信方式,虽然勉强完成了控制,但结果显然不是那么符合我们的预期,既然用蓝牙还需要研究一段时间,那我们就先整一些现成的,不需要研究的!iot云平台!这里当然也是通过w…

详解鸿蒙仓颉开发语言中的计时器

今天又到了大家喜闻乐见的科普环节,也可以说是踩坑环节,哈哈哈。今天聊一聊仓颉开发语言中的计时器,这部分可老有意思了。 为什么这么说呢,因为关于仓颉的计时器你几乎搜不到任何的文档,也没有相关的代码提示&#xf…

【计算机网络】第3章:传输层—拥塞控制原理

目录 一、PPT 二、总结 (一)拥塞的定义 (二)拥塞产生的原因 (三)拥塞控制的目标 (四)拥塞控制方法分类 1. 端到端拥塞控制 2. 网络辅助拥塞控制 (五)…

Vue3(watch,watchEffect,标签中ref的使用,TS,props,生命周期)

Vue3(watch,watchEffect,标签中ref的使用,TS,props,生命周期) watch监视 情况三:监视reactive定义的对象类型的数据 监视reactive定义的对象类型的数据,默认开启深度监视。地址没变,新值和旧…

【nssctf第三题】[NSSCTF 2022 Spring Recruit]easy C

这是题目&#xff0c;下载附件打开是个C文件 #include <stdio.h> #include <string.h>int main(){char a[]"wwwwwww";char b[]"dvxbQd";//try to find out the flagprintf("please input flag:");scanf(" %s",&a);if…

DBeaver导入/导出数据库时报错解决方案

导出&#xff1a; 报错&#xff1a;mysqldump: Got error: 2026: SSL connection error: error:0A000102:SSL routines::unsupported protocol when trying to connect 在额外的命令参数中添加"--ssl-modeDISABLED"可以关闭SSL服务&#xff0c;从而成功解决问题。这…

uniapp与微信小程序开发平台联调无法打开IDE

经测试属于网络问题。本机需要联网。否则会出现Hbuilder运行微信小程序到模拟器时无法打开 微信开发者工具 这个页面出不来会一直显示异常。这期间微信小程序开发工具的端口是通的 需要先联网