新闻中心
风控数据分析工作一年小结(风控数据分析师主要做什么)
从2020年9月入职至今(8月26日),马上就要满一年了。职场的第一年各方面的成长都有,如今就要离开深圳去往北京,趁着离职的这个空隙期总结一下这一年的工作,也算给自己过去的一年一个交待。
业务背景
公司在深圳南山的生态湾科技园这边,也算是深圳打工人的聚集地之一。公司的业务宏观上属于海外互联网金融,细说的话,其实就是放贷了。放贷给客户是有风险的,有的人还钱,有的人不还钱,要对这里面的风险进行量化地分析和把控。于是就有了风控数据分析这个岗位。
一个贷款业务可以粗糙地分为贷前、贷中和贷后三个环节。每个环节的风险控制都各有侧重点。以我所在的贷前为例,贷前风控的核心任务就是要把风险尽量的拦截在一笔贷款订单发生之前。那么这里具体涉及的技术就包括且不限于:申请评分卡、反欺诈、风险规则、黑/白名单、人工审核等等。
当我们有了一批客户以后,为了知道这批客户的还款情况,风控行业有了许许多多的指标来衡量公司放出去的钱到底风险几何。比如账龄、vintage、pd值和迁徙率等等。有了指标,自然就需要根据公司的业务发展情况,客观地设定阈值去定量地分析指标的波动情况。比如XX指标上涨了多少,分析一下原因。
某些日常监控指标需要每天展示给同事或者领导,这时候就需要报表、可视化的方式通过邮件或者其他形式呈现给对方。因为风控有直接中止业务的能力,所以有些时候,订单在不同节点的转换也是风控/产品/运营比较关注的点。
上面是简要的业务背景概括,下面谈一谈我的工作中具体做了哪些事情。
工作内容
1 申请评分卡
申请评分卡在风控领域又叫做A卡,这个所谓的A卡其实就是一个客户的概率值加一层分数的映射。概率通常是客户是否是坏样本的概率,用来输出这个概率的模型又叫做申请评分卡模型。业界常见的申请评分卡模型有逻辑回归模型,XGBoost模型,LightGBM模型等。
申请评分卡的制作对我后面的工作跳槽起到了至关重要的作用,因为这是一个在工作中实际落地并产生业务影响的机器学习模型。我在面试数据分析师、风控模型工程师和算法工程师的岗位时,这个申请评分卡项目是被问到过最多的项目。
申请评分卡其实和正常的分类模型相比存在一些不同,在三个地方我认为有明显的差异。第一是标签的定义,即如何定义一个样本是坏样本(我一般是通过迁徙率+pd来判定)。第二是特征要进行分箱+WOE映射来保持特征取值在训练集和样本集的稳定(即bi-var图走势不出现交叉)。第三是模型最后输出的概率值要映射成一个分值,如500-700之间这样子。除此三点之外,其实就是正常的数据挖掘流程:数据提取,数据清洗,特征衍生,特征筛选,建模,监控。
老实说,这个评分卡我一开始也不太懂,后面买了几本书,又去B站看了一些视频才算搞明白。其实即便是我已经工作一年了,仍感觉这个A卡还有很多东西可以深入研究。我的水平也只能说是初步掌握了一点粗浅地应用,实在惭愧。不过逻辑回归/XGB/LGB这三个模型背后的理论我确实有认真研究过,所以面试的时候但凡面试官问到这三个模型,我一般都能回答出对方的问题,我印象中有一位面试官让我说说逻辑回归的原理,我直接把整个逻辑回归从p(y=1|x)=h(x),h(x)=sigmoid(x)开始讲起,一路说到用极大似然估计建立代价函数,再配合梯度下降求导,最后配合小批量随机梯度下降法求解最优参数。得到模型参数后就能根据客户的特征来输出客户的信用分,再根据这个分数来形成风险策略/风控规则就差不多完事了。当然,模型本身和模型的参数后续也要持续监控,出问题了也得及时迭代更新。
总的来说A卡的实战经验算是求职时的一个亮点,如果有小伙伴想往风控数据分析、风控建模发展,我认为做一个A卡模型肯定是加分项。
2 特征挖掘
挖特征我个人觉得是最令人头疼、头秃的事情,因为之前打过天池的数据竞赛,所以一些常规的特征套路还是比较清楚的,比如统计特征:最大值、最小值、均值、偏度、峰度等,时间窗口特征:近X天的统计特征,近X天是否有X行为,组合特征:特征之间的加减乘除,两个或多个特征的绑定等等。除去上述的常规特征衍生方法,也有基于一些特定数据类型而出现特征,如特定数字的前X位,中间X位,后X位,如经纬度坐标,去计算距离,移动频率等。
常规思路多多少少会挖出一些有效的特征来,除此之外要再想提高模型的表现,就需要好好研究下业务,思索用户生成订单的过程中哪个环节哪些行为能够显著揭示客群的不同,比如说客户提交订单的时间,花了多少分钟。客户申请日和发薪日,生日之间的关系。客户的联系人之间有什么关联。这种根据业务来衍生的特征,需要对业务很熟悉,且有一定的想象力。
无论是从数据竞赛的角度来说,还是在工作里面去根据业务建模,特征工程绝对都是头等大事,花费的时间一般也是最久的。挖特征这块平时可以看看竞赛平台的top开源代码,或许能有所启发。
3 风险规则
规则本质就是一种if else的逻辑判断,风险规则通俗理解其实就是如果客户满足了某个条件,我们就拒绝或者接受这个客户,当然也可以使用其他操作,不一定非得拒绝或者通过。相比评分卡来说,我的理解,风控规则其实就是用更加细微的条件去拦截评分卡模型未能识别的风险客群。比如说评分卡拦截了80%的风险,那风控规则再去做一些补充,争取去拦截剩下的20%。不过要做到100%的风险拦截肯定是不可能的,没人能百分之百的预测风险。
风控规则有一个比较简易的生成方法,就是用CART决策树做一个回归模型,这时候每个叶子节点在可视化的情况下都能明确的知道其坏样本的占比。一般坏样本占比高的客群,我们可以提取出决策树的根节点到这个叶子节点的分裂路径作为规则。这个方法很轻巧,但从优化的角度来看它并非是全局最优解,因为决策树的分裂本身是基于贪心算法来进行的。我自己也写了一个暴力的规则衍生,可以把特征自动组合起来进行判定,基本能够穷举所有的特征组合情况,缺点就是太耗时了。
风控规则这一块做得好的话,还能单独拎出来,专门去做风控策略分析师,当然相应的,模型做得好也能去做风控模型工程师或者是风控算法工程师,反欺诈/反作弊算法工程师。不过风控的场景也不单单只出现在互联网金融这个领域,比如电商平台、直播平台、内容平台同样也需要风控,各自的侧重点不同。
4 波动分析
规则、模型、特征这三个任务其实偏数据挖掘和算法一点,波动分析这就是一个很经典的数据分析任务了。我相信,无论什么业务场景,都需要从数据的角度来衡量,观察乃至评价业务的好坏,都需要用数据指标去进行量化的分析。当然,怎么去定义一个业务的数据指标或者是一整套数据指标体系又是另外一个问题。我目前接手的这个风控数据分析业务,数据指标体系已经非常成熟了,从贷前到贷中到贷后都有各自关注的指标。
有了指标就需要看指标的走势,就需要分析指标为什么会波动。以我个人的经验为例,分析波动一般有两套组合拳。第一套靠的是对业务的熟悉,先看什么后看什么,怎么拆维度都有一个比较成熟的框架。第二套靠的是暴力遍历所有的维度,用根因定位的方式找出最有可能的根因。这两套方案是属于那种单独拿出来可以各自写一篇大型文章的层次,这里就不过多展开了。
总之波动分析也是面试必问,工作必备的知识点。怎么做波动分析,我认为能够比较直观地展现数据分析人员的逻辑水平和相关经验。
5 报表自动化
常见的报表自动化技术涉及到SQL、EXCEL、Python。本质上就是把表格数据自动的生成和发送,比如用EXCEL通过ODBC连接数据库,在EXCEL里面写好取数的SQL,再在EXCEL里面预先做好数据的呈现(文字+图表),最后用Python来把EXCEL的内容放在邮件中发送出去。或者直接用Python连接数据库进行取数,用HTML来呈现。
我最常用的方式是Python连接数据库,用Plotly生成可视化的折线图、直方图,用Pandas的styling生成表格,再把图片和表格嵌入一个HTML字符串中,最后用Python将HTML和数据的附件发送出去。数据附件也可以用Python来创建一个EXCEL文件并进行数据写入。自动化发送的整个框架搭建其实并不难,难的是怎么调整各种图表和文字的格式和排版,调整这些细节需要你一直去看相应库的文档,调参数调到想吐。
总的来说,把报表用自动化的方式去呈现是摆脱数据分析师“表哥表姐”头衔的有力技术。一方面,自动化节省了时间,另一方面,自动化的技术涉及到Python,也算是为数据分析师加固了技术壁垒。
6 其他
SQL优化。作为一名数据分析师,当然也是干过很多取数工具人的活,无非就是写SQL取数。SQL写多了,有时跑得慢,自然就涉及到优化SQL的问题,感谢我的老大哥,教了我一手SQL优化。本质上要优化一个SQL其实并没有网上各种帖子说的那么多技巧,核心就是减少数据量。因为不同的数据库底层其实早已做了优化,优化后的SQL甚至执行顺序也和网上常见的那种不太一样。
和产品沟通。数分岗也是需要经常和产品交流沟通的,我所做的一些报表也是为产品方提供数据支持,很多时候大家对指标的计算口径有不一样的看法,这时候就要多交流多沟通,勇敢发言不要虚。很多产品的方法策略会比较拍脑袋,缺乏依据,这时候不要生气或者着急,考虑到大家的KPI也不一样,所以冲突是在所难免的,反正对事不对人,多思考多交流就行。
数据可视化。工作之前一直对数据可视化比较感兴趣,看着那些五彩缤纷的图表总感觉厉害的不行,到了工作中发现这些玩意其实没啥意思,工作讲究的是及时反应业务变动,只需要基本的美观大方即可,没必要搞得花里胡哨的。PowerBI也好,Tableau也罢,学好一个其他的也差不到哪里去,如果只用Python,学好Plotly或者Pyecharts足以应付大多数场景了。如果硬要搭建一个BI系统出来,我觉得Grafana也挺不错的。
未来发展
从风控这个行业来说,其实风控并不算是一个很大的行业,甚至有点偏小众,业界内的很多人其实都是互相认识的,我记得有一次去一家公司面试风控数据分析师的岗位,面试官竟然是我同事的前同事,所以说这个圈子确实不大。圈子不大有一个好处就是没有太多人来关注,像现在搞算法的,搞数据分析的都非常卷,但是细分到风控这个行业来说的话,风控数据分析师和风控算法工程师其实相对来说就没有那么卷。目前由于互联网金融这个行业受到了很强的监管和打压,很多求职者一听对方的公司是搞金融的纷纷避之不及,我个人觉得属实没必要这样弃之如敝履,因为中国民间一定是有融资需求的。这种宏观大势我就不扯了,毕竟我也就是个小小打工仔而已。总的来说,我还是看好风控这个行业的未来发展的,而且从另一个角度来说,需要风控的不只是金融这个方向,电商、直播、内容平台等等场景都是需要风控的。
从风控数据分析这个岗位来说,最适合进阶的路线莫过于风控策略分析师和风控模型工程师或者是风控算法工程师。风控策略工程师需要更多的业务知识,模型算法路线则需要更强的建模背景。我个人比较倾向的路线是模型路线,无他,唯钱多尔。
想一想自己19年开始学Python,到现在都已经两年多了,还是感觉自己菜得不行。当初好多的规划都没有实现,唯一坚持下来的就是数据分析和数据挖掘这条路。功夫不负有心人,这个炎热的八月我面了40+场试,也成功拿到了数据分析、数据挖掘、算法工程师、风控模型工程师等不同岗位的offer,心心念念的大厂offer也终于到手。但现在又要面临抉择,是贴近业务去分析师,还是咬咬牙去卷算法,我也还在思索当中。
每次HR问我的职业规划是什么时,我都能信心满满地告诉对方一堆我打好的草稿。但其实真的往哪个方向走,我也迷茫得很。又想赚钱多,又不想太累,还想着工作体面高端大气上档次。哪有这种天上掉馅饼的好事呢?还是一步一个脚印慢慢来吧,规划做的太长远也没啥必要,能把握住一个大方向已然不易,就不要太强求自己去做那些做不到的事情了。
加油吧,打工人。