开篇:
在魔蝎被警方带走调查后,目前还没有对该案件公开的法律定性定罪。但是爬虫市场已经好像早已经离去,也许他是高利贷的推波助澜,也许他是使用数据的过分泛滥。我们理解,我们遵守,我们敬畏。以下面的案列来告别数据爬虫,也许他将不复存。本文阐述经历在大数据爬虫业务风生水起时。。。。。。一方面了解爬虫数据在风控策略上的应用,一方面了解策略数据挖掘的分析思路。虽然一切过去时,但是方法,思路,技术是永恒的。

继上一篇策略分析师的日常,同学们都觉得是bi同学做的事,但是我好像就没那么幸运了,除了负责公司各部门的报表,还要做策略,还要做模型,最近又负责公司的多产品整体额度授信体系。但是话又说回来了,我不觉得没什么不好的,或者做了以后发现自己懂得更多,能充分了解公司的各个业务,产品,战略等细节。为我的工作提升了整体认知和效率。也在不断克服困难的时候,日积月累,我现在可以负责bi,负责策略,负责模型,参与公司整体规划。是不是自己成了一个复合型的人才。千万不要有这不是我的活,然后各种理由不去干,心态不正,如果我这样,我可能就是一个快要淘汰的电话信审人员,不,已经淘汰了,因为我在16年的时候是一名电话信审人员,觉得策略,数据分析师,模型好高大上哈。正式因为我觉得不会的,我可以尝试的,然后我去克服困难,不断解决,循序渐进,才有今天的不被淘汰。

好了,我们开始讲策略数据代码篇

讲之前先讲下我们风控的整体架构,一个相对完整的风控体系。具体到风控策略:含有准入规则策略、反欺诈规则或者模型策略、信用模型策略、额度策略、利率定价策略,同时针对客户生命周期实施不同的风险管理策略。

分析场景设定

假如我们业务上线了一段时间,积累了大概新户20000左右,当时调取了运营商数据已保存,但是因为谨慎原则,并没有用运营商的规则做决策,现在我们分析下一运营商数据与客户是否坏账的相关性。或者说运营商相关的指标是否具有客户违约预测能力,或者这个预测能力有多大的明显程度,效果怎么样?
(其实这个环节就很重要了,要确定分析的客户必须是新户,要确定的客户坏账定义要明确,逾期多少天,我分析出来的策略要用到哪个环节,怎么用,分析出来用在模型里,还是策略里,这些都很重要,直接影响后续工作要点和质量正确与否的产出)

好了,上面的问题我们确定了,我们先看下运营商的数据什么样的,大概数据结构,类型

数据是这样的,下一步就是衍生变量,这之前也要注意一些细节,我要确定链接的键值,每一份的里的数据时效性,是否满足分析要求,或者我要有个大概了解,此表userid为键值,createtime 为数据获取时间。数据整体包含了某个手机号与某个手机号在何时何地通话的时长以及通话的类型(主被叫)。

那下一步要直接衍生么,不要,先从数据结构上,再从风控风险策略经验上去设计衍生大纲,衍生思路,(这就是为什么懂风控的数据分析师被大家觉得有优势),如果只是一个单纯的建模人员,或者没有风控经验,多少会有些不愉悦。

好吧,我们按这个思路在sql编辑器上设计变量衍生大纲,我的大纲是这样的。

好吧,衍生变量整体大纲思路设计好,下面我们按这个思路去写衍生变量了,是不是有了思路,体系,写起来就有条理了,清晰了,写出来的顺畅些呢,开始写。


细致的同学看我代码的,我已经衍生了633个变量。中间的变量省去,代码5000多行了,代码语法正确,计算的是一个userid的633个指标,当我们计算多个userid的,就可以用下面的in ( ),然后 group by 。这一步有个关键点,sql计算出来的指标数值要与人工计算的数值进行对比验证,确保准确,核对1-5个userid 的几个随机指标就行。

这个项目,我20000多个样本,写的python(循环样本userid,在提交到sql,然后在合并整体数据) ,夜间配置的自动任务,跑了大概8小时。

你可以看我每个变量都有序号,以及对应的清晰分辨的英文命名,以及清洗的中文解释。这些为后续的维护,迭代,更新,报告,评审,都会带来很方便的工作效率。希望我们大家一开始就从细节做起。

变量跑出来了,因为数据庞大,变量太多,用的python 做的样本主表左链接运营商字段,很方便,上代码。

数据预览,用文本编辑器打开的,excel几乎打不开了,第一行字段,第二行为衍生指标观测

这么多变量,接下来的工作就好做了,其实数据准备好,后面的工作做起来就方便多了。前期的架构,思路,项目需求,衍生,为后期建立了准确的、丰富的数据准备。

我们开始筛选指标,看看哪个指标预测能力强,我们先来个排序。(一般行业用iv来衡量指标的预测能力,即信息价值,iv中分箱算法对iv影响较大:等频、等宽、卡方、决策树、ks最优)。我采用自己写好的卡方chimerge python代码来计算。

之前的数据集重名为 data_train_test ,前三行代码,去掉目标列,然后取指标,建立一个dataframe存iv值 变量c 和箱数 变量b ,建立一个字典,来存放卡方分箱表 变量a。
用for 循环的形式,遍历每个指标,通过写好的chimerge 分箱iv计算函数,计算每个指标输出的三个值。存放到各个对应的位置。(此函数参数卡方最低合并值为7,默认最低为3.84)

开始跑批我们看下结果,拭目以待了

上面这个表是卡方最优分箱计算的iv排名,然后我们看看第一个iv为0.153的变量具体的分箱的详情。

其中缺失值9999998 这一行单独处理,因为运营商的数据大部分是不应该缺失的,我单独放在一箱,可以删除,或者用数学算法填充,用缺失值直接作为一箱处理不好解释。
重点,iv 0.153,具有一定的预测能力了,我们再看下badrate 是单调递减的,趋势完美


同时woe也是单调递减的。另外我们看每项占比,第一箱坏客户比例46.7%,且占总体比值
Bin_rate 为7%,样本总体坏账为25.9%。从行业经验规则上,本箱坏账达到总体目标坏账的2倍上下,可以单独提取一条策略。这时候这条规则:最近180天被叫通话小于10秒手机号去重个数 < 10.81 ,这条规则数据上可以给出最好的解释,同时从经验解释上也可以很容易理解,我们除了一些主要的电话会大于10秒,而快递,外卖,陌生电话大部分是在10秒内,如果一个欺诈的客户或者坏客户在180天内可能很难养成一个正常人的通话使用习惯。当然如果要建立一个模型也是把可以这个变量放进去的。

好吧,后面就是策略需求上线测试监控的事情了

这就是一个风控策略分析师 进行策略分析、迭代、模型 所涉及的代码数据挖掘分析部分了。
其实大部分的内容相同,每个项目也会涉及到具体的一些细节,用到不同的算法,不同的思路,在这里给大家从项目流程上,从代码分析上,风控策略上给讲述一个简单的案列。
希望我的这个文章可以为同学们带来一点开心,谢谢。

后续
后来我并没有做成单个规则,因为一开始就是个模型项目,其实我整个项目是从建模开始的。文档是这样的,后续如果大家对哪块工作内容感兴趣,我可以针对兴趣点去写,谢谢。


– 行可可–

风控策略分析师日常--代码、数据、策略相关推荐

  1. 策略模式示例代码_策略设计模式示例

    策略模式示例代码 本文是我们名为" Java设计模式 "的学院课程的一部分. 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们. 您将了解模式如此重要的 ...

  2. 电气论文实现: 考虑储能和可再生能源误差的售电公司购售电策略( 有代码数据)

    个人电气博文目录链接: 学好电气全靠它,个人电气博文目录(持续更新中-) 结果图 购售电策略 目标函数 售电公司的主要收益来自于购售电前后的电价差.购售电模型主要以售电公司的收益最大为目标,其中售电部 ...

  3. 数据分析师不是数据科学家

    这是关于从事数据科学工作系列帖子中的第二篇.(第一篇请点击这里) 误区1:当你变得更有经验时,你可以担任数据分析师的工作,并能够将其发展为数据科学. 数据分析师不是数据科学家的初级阶段,他们是完全不同 ...

  4. 详解策略分析师的日常是怎么样的?策略数据代码篇

    一.开篇 在魔蝎被警方带走调查后,目前还没有对该案件公开的法律定性定罪.但是爬虫市场好像早已离去,也许它是高利贷的推波助澜,也许它是使用数据的过分泛滥.我们理解,我们遵守,我们敬畏. 以下面的案列来告 ...

  5. 来FAL学风控|风控策略分析师的日常是怎样的?(案例+代码详解篇)

    风控策略分析师的日常是怎样的?(案例+代码详解篇) FAL金科应用研究院 做了5年的金融,3年的数据分析工作,从17年6月才真正接触代码,算不到熟练,但在不断的学习和工作实践中目前是可以解决任何问题的 ...

  6. 介绍一种策略分析师必备的解题技巧

    风险策略的分析方法跟大多数的数据分析场景很像,都是一种数据下探直到找到的过程,有些像剥洋葱一样直到探索到问题的真像~ 为什么在整个策略分析中,我们一开始并不能了解到问题的真像(比如找到那个" ...

  7. 贷前风控策略审批及决策引擎——策略审批架构搭建

    本文是FAL量化风控全线条训练营的听课笔记,对此感兴趣的可以去关注FAL金科应用研究院的公众号.知乎.官网去了解相关内容.现将核心内容进行整理,补充一些自己的理解和总结,便于结合自己当前工作内容,提升 ...

  8. 数据分区与放置策略解析_数据策略好数据与坏数据

    数据分区与放置策略解析 In 1990 the Virginia based bank "Signet Bank" decided to trust two smart peopl ...

  9. vn.py源码解读(六、主引擎代码分析---策略模块)

    之前在讲MainEngine的时候,有这样一个代码: me.addApp(ctaStrategy) 这里,我们来看一下MainEngine里面这个addApp函数的代码: def addApp(sel ...

最新文章

  1. wget java 1.7_linux下安装和配置jdk1.7
  2. druid连接池mysql5.7_Spring Boot 使用Druid连接池整合Mybatis-Plus连接Mysql数据库
  3. 树莓派用服务方式设置开机启动
  4. oracle中导入导出数据备份数据库
  5. MyBatis-学习笔记01【01.Mybatis课程介绍及环境搭建】
  6. mount 挂载光盘
  7. C语言(CED)编写一个程序,求两个字符之间的加减运算。
  8. HTML语法初探(一)
  9. Oracle伪列(ROWNUM)的使用
  10. 数据--第43课 - 图课后练习
  11. 鼠标宏设置到鼠标左键,重置回去!
  12. java 下载指定路径_用java流的方式怎么指定下载到指定目录下
  13. QQ空间登录协议实现:易语言篇
  14. 关于电解电容ESR的问题
  15. AutoCAD .NET 二次开发实例(2) 批量统计指定图层线段长度
  16. Lempel-Ziv算法 具体过程
  17. 手把手教你给女朋友编写一个公众号定时推送(java版本)
  18. 给一个喝酒青年的公开状
  19. gaussDB200 单节点安装
  20. 关于cnpm的使用及理解

热门文章

  1. SpringBoot启动完之后自动打开浏览器网址
  2. OPCUA 设置登录用户名与密码
  3. 腾讯 roomservice php,后台系统搭建记录 - 腾讯Web前端 IMWeb 团队社区 | blog | 团队博客...
  4. 前端知识大全 - 收藏集 - 掘金
  5. python自定义二元一次函数_Python实现的拟合二元一次函数功能示例【基于scipy模块】...
  6. 一起走过的日子.大学本科和同学拍的DV,还有全家福~
  7. ctfshow七夕杯复现
  8. 离谱!全公司电脑Alt键被抠掉,就为防员工摸鱼...
  9. 警惕!2007年网络***十大手段
  10. YoLo: You Only Look Once: Unified, Real-Time Object Detection译文