Commit 14de033a authored by 舒皓月's avatar 舒皓月

V0.0.3 2019 07 28

parent edc7499b
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7 (data_test_work_space)" project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="TestRunnerService">
<option name="projectConfiguration" value="pytest" />
<option name="PROJECT_TEST_RUNNER" value="pytest" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/model_monitor.iml" filepath="$PROJECT_DIR$/.idea/model_monitor.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
This diff is collapsed.
......@@ -14,23 +14,6 @@
- Lift Chart
# 版本信息
- V 0.0.1
基本完成对PSI和Lift Chart关于模型分在MongoDB的重写.
- V 0.0.2
- 删除last_month参数, 设定运行当天的前一天为最新日期, 往前的(num_month - 1)月的1号为起始日期, 最新日期往前45天(若设定passdue_day=15)那天为有响应的最新日期.
- 对PSI的计算, 时间跨度为(起始日期 --> 最新日期)
- 对AUC的计算, 时间跨度为(起始日期 --> 有响应最新日期)
- 添加对PSI和AUCR(后面月份相对基准月的AUC比率)的异常检测.
# VLM
- 待重写.
......@@ -62,12 +45,13 @@
- 模型分名称.
- a月样本量, b月样本量...
- a月PSI, b月PSI...
- a月AUC, b月AUC...
- a月AUC, AUCR, b月AUC, AUCR...
- 某个客群是否异常(AUC明显下降, PSI较大).
- NOTE:
- 当某月样本量很小, 或者没有样本时, 标记为NaN. 对应的PSI, AUC也为NaN.
- 当某月样本量比较小, 导致PSI, AUC计算异常(如某些分箱没有样本, 全为非逾期样本), 则标记为-999.
- 基准月的PSI为0.
- 基准月的PSI为其与全样本第一个月之间的PSI, 反应该客群与整体的差别.
- 基准月的AUCR为其与全样本第一个月AUC之间的比率, 反应该客群与整体之间的差别.
## 使用方法
......@@ -76,15 +60,19 @@
- 创建一个模型监控对象(这样我们就有对象了^v^).
```python
mm = ModelMonitor(excel_path='./model_score.xlsx', save_path='./image/', num_month=4, min_user_group=500, max_psi=0.1, min_aucr=0.8)
mm = ModelMonitor(excel_path='./model_score.xlsx', sheet_name='mongo_model', save_path='./image/', passdue_day=15, num_month=4, min_user_group=500, max_psi=0.1, min_aucr=0.8, if_load=False, if_save=True)
```
- excel_path: Excel文件路径.
- sheet_name: Excel的目标页.
- save_path: 统计图存放路径.
不用自己再另外手动创建文件夹, 代码会判断文件夹是否存在并创建.
- passdue_day: 定于逾期天数, 默认15.
- num_month: 想要统计近期几个月(包含运行程序时所在的日期前一天, 如运行时为7.1, 则不包含7月数据, 如运行时为7.10, 则将7月9天算作7月数据).
- min_user_group: 最小客群数量.
......@@ -93,10 +81,15 @@
反之颗粒越小, 最后统计图会越多.
- max_psi: 最大PSI, 大于则视为该客群异常.
- max_psi: 最大PSI, 大于则视为该客群异常, 基准月的PSI默认为大于5倍该值为异常.
- min_aucr: 最小AUCR, 小于则视为该客群异常.
- if_load: 是否从本地加载数据.
默认为False, 即从数据库抽取数据.
- if_save: 是否将数据库抽取的数据保存到本地.
- 执行run函数.
......@@ -118,6 +111,32 @@
- 添加对存在MySQL中模型分计算PSI, AUC的代码.
- 完成对VLM的重写.
- 部分(量信分, app模型)模型分报错, 进一步与模型维护者交流, 看是否字段名或者其它地方有问题.
- 对于某些客群在10个分箱中, 部分分箱数量为0导致计算异常的进行细致的处理.
# 版本信息
- V 0.0.1
- 基本完成对PSI和Lift Chart关于模型分在MongoDB的重写.
- V 0.0.2
- 删除last_month参数, 设定运行当天的前一天为最新日期, 往前的(num_month - 1)月的1号为起始日期, 最新日期往前45天(若设定passdue_day=15)那天为有响应的最新日期.
- 对PSI的计算, 时间跨度为(起始日期 --> 最新日期)
- 对AUC的计算, 时间跨度为(起始日期 --> 有响应最新日期)
- 添加对PSI和AUCR(后面月份相对基准月的AUC比率)的异常检测.
- V 0.0.3
- 增加对每个客群基准月PSI的计算, 原本默认为0, 改为客群基准月与该模型分整体第一个月之间的PSI.
这样既可以看每个客群随时间的分布变化, 也能看到每个客群的分布与总体的差距.
- 增加对每个客群基准月AUCR的计算, 原本默认为1, 改为客群基准月与该模型分整体第一个月之间的AUC比率.
这样既可以看每个客群随时间AUC的变化, 也可以看到每个客群的AUC与整体的差别.
- 增加数据读写模式的功能, 主要方便debug.
# 贡献
......
[TOC]
# 概述
## 报告内容
- 本次模型报告由于代码处于开发阶段, 所以内容并不完整.
- 主要包括模型分的PSI, 以及AUC随时间的变化, 以及客群与整体的差别.
- 尽管模型监控代码加入了自动筛选异常客群的功能, 但要更加深入分析仍需要时间, 此版报告为简略版.
## 监控的模型
- 已监控模型:
- 同盾V1
- V6
- 百融V1
- 首贷融合模型
- 融360首贷融合模型
- 新颜V2
- 新颜V3
- 魔蝎
- 复贷新融合模型(无运营商)
- 复贷新融合模型(有运营商)
- 短信模型
- 探知
- 同盾V2
- 电话邦V2
- 百融V2
- 复贷V4
- 首贷新融合模型(无运营商)
- 首贷新融合模型(有运营商)
- 暂未监控模型:
- 不明原因(待与模型负责人交流):
- APP模型
- 量信分V2
- 还有一些模型待加入.
## 时间跨度
- 考虑到整体模型的时间跨度, 本次模型监控报告的取数时间范围为2019.03.01 - 2019.07. 26.
# PSI
## 与整体差别较大的客群
### 概述
- 由模型监控代码在已监控模型中, 产生的有效客群数量为465个.
- 设定PSI阈值(0.5)后, 筛选出的与整体差别较大的异常客群有15个.
- 设定PSI阈值(0.1)后, 筛选出的变化较大的异常客群有25个.
### 有哪些客群
- 客群列举:
| 客群名称 | 月份 | PSI |
| :-----------------------------------: | :--: | :--: |
| 同盾V1-复贷-百融榕树 | 6 | 0.57 |
| V6-首申-国美api | 6 | 2.47 |
| V6-首申-壹账通H5 | 3 | 1.75 |
| V6-首申-平安一贷通安卓 | 5 | 2.07 |
| V6-复贷-51公积金API | 3 | 0.53 |
| 新颜V2-复申-挖财api | 4 | 0.57 |
| 首贷融合模型-复贷-全渠道 | 5 | 1.09 |
| 首贷融合模型-首申-壹账通H5 | 3 | 1.89 |
| 首贷融合模型-首申-平安一贷通安卓 | 5 | 2.13 |
| 首贷融合模型-复申-挖财api | 4 | 0.51 |
| 融360首贷融合模型-复贷-全渠道 | 5 | 1.01 |
| 融360首贷融合模型-首申-壹账通H5 | 3 | 1.82 |
| 融360首贷融合模型-首申-平安一贷通安卓 | 5 | 2.13 |
| 融360首贷融合模型-复申-挖财api | 4 | 0.67 |
### 资质相对好的客群
- 暂时鉴别方式为在异常的基础上去看图, 准备后续加入趋势判断, 自动识别是变好还是变差.
- 经过查看, 均为资质相对较好的客群.
- 例如:
![融360首贷融合模型-复申-挖财api](../doc/image/融360首贷融合模型-复申-挖财api.png)
### 资质相对差的客群
- 无.
## 随时间分布变化较大的客群
### 有哪些客群
- 部分客群列举:
| 客群名称 | 月份 | PSI |
| :--------------------------: | :--: | :--: |
| 同盾分v1-首申-百融榕树 | 5 | 0.29 |
| V6-全样本 | 7 | 0.10 |
| 新颜V2-复贷-全渠道 | 5 | 0.66 |
| 新颜v3-全样本 | 6 | 0.10 |
| 魔蝎-全样本 | 6 | 0.34 |
| 短信分-全样本 | 7 | 0.13 |
| 融360首贷融合模型-首申-融360 | 4 | 0.12 |
| 电话邦V2-首申-全渠道 | 6 | 0.13 |
### 资质变好的客群
- 暂时鉴别方式为在异常的基础上去看图, 准备后续加入自动识别.
- 部分资质变好客群列举:
| 客群名称 |
| :----------------: |
| V6-全样本 |
| 新颜V2-复贷-全渠道 |
![V6-全样本](../doc/image/V6-全样本.png)
### 资质变差的客群
- 部分资质变差客群列举:
| 客群名称 |
| :--------------------: |
| 同盾分v1-首申-百融榕树 |
| 短信分-全样本 |
![同盾分v1-首申-百融榕树](../doc/image/同盾分v1-首申-百融榕树.png)
# AUC
## 概述
- 由代码产生的客群为113个, 因为本身放款数量相对申请数量少, 且需要响应时间.
- 设定AUCR阈值为0.85, 得到的异常客群数量为23个.
## 相比整体模型效果较差的客群
- 客群列举:
| 客群名称 | 月份 | AUCR |
| :--------------------: | :--: | :--: |
| 新颜V2-首申-挖财api | 4 | 0.80 |
| 新颜V2-首申-爱奇艺H5 | 3 | 0.80 |
| 新颜v3-首申-360金融API | 4 | 0.85 |
![新颜V2-首申-爱奇艺H5](../doc/image/新颜V2-首申-爱奇艺H5.png)
## 模型效果随时间变差的客群
- 部分客群列举:
| 客群名称 | 月份 | AUCR |
| :---------------------: | :--: | :--: |
| 同盾分v1-首申-爱奇艺H5 | 4 | 0.76 |
| 同盾分v1-首申-挖财api | 6 | 0.77 |
| V6-复申-全渠道 | 6 | 0.70 |
| 首贷融合模型-首申-融360 | 5 | 0.75 |
![V6-复申-全渠道](../doc/image/V6-复申-全渠道.png)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment