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

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

FAL金科应用研究院

做了5年的金融,3年的数据分析工作,从17年6月才真正接触代码,算不到熟练,但在不断的学习和工作实践中目前是可以解决任何问题的,就这么硬气,是企业要求太低了么,哈哈哈。

这不是一篇代码教学的文章,这是一篇讲述我日常工作都需要的编程语言、学习过程、工作项目、以及学习心得。首先工作中都用了哪些工具呢,我所用到的有sql(mysql,oracle,odps),r,python,sas,Sas em,mongo,neo4j,spss,fico_mb。这些是大家看职位招聘简介的时候会经常提到的语言。

1

语言分类个人感觉概括首先数据库存放数据的语言:sql、mongo、neo4j。每一种数据存放的格式有所不同,是为了实现相应的功能。数据分析师主要需要懂得各自的查询语法,来加工,清洗,提取数据或者开发报表。

工作经验可以说80%都是在写sql,主要也跟工作职能相关,主要用sql开发各种报表,另外,就是为建模前期数据建模样本和字段提取、字段衍生做准备。这个语言要求精通,才能快捷,精确的实现自己的报表需求或者建模样本字段的提取和衍生需求。➡️此语言中sql需要极度熟练!

其次是界面式的拖拉操作,主要是内部已经封装好算法,方便人直观的进行数据导入,清洗,算法建模,很直观,快速。包括spss,sas em,fico_mb最大的优点是不用写代码。➡️此语言不能装高大上,但是简单,高效,易学习,超级可视化。最后是r、python、sas,这三者大家很熟悉了。我谈下个人的看法:sas是银行采用的很普及的软件,一方面强大的功能稳定性,另一方面价格尤其高,很多人难以接触。笔者最近也在学习sas的代码,最大的感觉是编程比python 还简单,功能上在数据挖掘上不亚于python,sas写自动邮件居然比python简单十倍,而且逻辑极其简单。

Python可塑性很强,通常说就是很方便、很简单的能干很多事情,尤其最近几年的机器学习把python搞得很火,主要还开源免费。

R呢,感觉最近被大家抛弃了,但是记住他是专业的数据挖掘科学软件(科学级别),就举例你在python上很难找到专门建金融评分卡的库,但是r上已经很早就有成熟的各种分箱算法,建模算法,ks,iv,计算等成熟的包,更适合做细节的评分卡开发。以上,作为带有分析师字样的岗位,不会一门语言,现在已经说不过去了,掌握1-2门编程语言已经是当下最基本的要求。如果做为数据挖掘工程师,是需要熟练掌握几种算法的全过程建模code开发。例如lr评分卡、gbdt、xgb,能全流程建模。了解到这些你大概清楚,自己对自己的一个认识了,当然这只是我的认识。

2

阐述几个具体工作的小项目

由于主要负责公司所有报表的产出。包括运营的各种转化、渠道,资金监控报表,催收部门的预提醒,回款等财务的对账报表。夸张的说占据了整个代码90%的工作量。

因为风控部门的报表比较细致。批核报表、模型监控报表、迁徙报表、vintage报表,逾期监控报表等等,报表最多的达到200多行代码,嵌套10多层sql,10多个表连接,聚合,排序,开窗等各种函数的使用。写好sql总结下来最大的几个需要注意的重点,其实sql是最简单的语言。学好语法就好了。做出一个准确的报表需要几个进一步必须提升的能力。

熟悉表结构并且要从业务逻辑上搞清楚。每个字段每一个值代表的逻辑再结合业务理解清楚。
构造sql的逻辑思维,不要上来就写,假如你要写一个vintage,看看需要几个表,表里的字段是否都是满足自己的需求。另一个重要的就是过程构造,往往简单的嵌套不能形成需要的报表,需要自己先画出每个嵌套的数据逻辑草图,就像盖房子画图纸一样。
检查数据是否符合业务逻辑,准确,反复验证。每一个嵌套查询我都会去把数据跑出来看看是不是想要的,然后在进行下一步。
Sql:举例一个vintage报表


代码结构是正确的,字段已处理,请忽略。首先:每一个表的选取,条件,连接关键字的确定;其次:合同表、还款计划表、实际还款表、催收表。进行左连接(要什么样的最底层数据,怎么进行连接,设置什么条件,需要计算哪些新的字段,本文为逾期天数);聚合:上面简单的两个步骤生成的数据可以满足我直接生成vintage。

当然熟悉vintage必须的,这个是另一个需要掌握的,接下来按vintage的定义,进行报表构造。本案例只用到了简单的聚合函数、条件关键字。其实这在金融里算比较复杂的报表了,但是事实发现,其实做起来是很简单的。

如果你有以下几点是做不出来的:

不懂vintage理论、定义,那绝对可以不用写了,因为不知道要干嘛;
不知道数据都在哪个表,每个字段代表的意义,写出来缺东西,或者不准,或者搞了好久,自己还不明白自己做出来的数据;
知道1和2,但是不知道构造sql,上来就直接写vintge的计算字段是不对的,需要先计算逾期天数,计算逾期天数又需要连接多个表。

大概的构造方式就是你要一层一层去推理,直到最后一层的数据是直接可以拿的,或者直接可以来生成的,千万不能跃层。然后再从最后一层往前写sql,盖房子。上面的sql的结果是这样的

以上例20190828来分析(四期产品所以四个账期),直观的可以发现这天放了7700,在第一期的pd8表现的逾期率为22,28,到最后的四期表现全部结束,该放款日最后pd8坏账31.82%。上下日期比较可以看放款额的变动,每期,总期的资产质量表现情况。对策略,市场影响、客群变动都是最好的追踪。其次用的最多的就是Python(spyder),他整合能力很强,可以跨多个语言的数据库,然后通过代码处理加工,整合数据需求,可以访问monggo,neo4j,mysql,orcale,然后还可以开发邮件报表和钉钉监控的自动消息。还可以直接用已经编程好的代码进行数据挖掘建模。整体功能强大,编程起来简单。Python 经常需要掌握的简单技能:

需要了解数据类型和结构方式
能做简单的数据处理,截取,连接,汇总
循环条件控制使用(for 循环)
机器学习库ski,numpy(没怎么用过),pandas,
Pandas 这个很友好,内置很多方便的函数,例如可以直接用sql函数就可以执行sql代码执行,并形成表,如果用pymysql的excute则还需要自己在把字段加上处理。
以上都是大致的基本要求。
Python:举例一个lr模型自建函数的开发技能提升:本人还是觉得最核心的是逻辑思维:本图iv最优分箱思维简要举例。

整个开发工程涉及到的语法并不多,运算符加for循环,简单吧,会这两个就ok了。运算符也很简单只有加减乘除,log等数学函数。其实整个逻辑很重要,下面简述我代码的构造逻辑。写成了库函数的形式,然后import自己的库,使用方便,简单清晰,不会误改。

上图下面的代码很简单没有罗列,重点请看卡方函数绿色的文字,我觉得这个是最重要的。

建立一个最优卡方分箱,如果自己知道要做的这几个要点,就可以构造出来的,读者朋友们一开始就用别人的代码,我相信也没有几个人能真正把别人的代码搞明白,最后只知道运算结果,中间的环节都不知道,到最后可能连卡方值怎么计算都不清楚。

一定要自己设计思路,画出思想大纲,去解决每个问题。上面说到这个代码涉及到的开发都是很基础级别的,都是一些加减乘除和for循环,而核心的东西是需要自己去构造,有自己的逻辑思维,这个是需要自己去摸索,成长的。只有了这样,才会很好的写出优秀的作品,而且是不断的产出的。Python邮件发送或者钉钉自动任务的配置(这个也常用,简单介绍下)

这个其实不太难了,把上文生成的报表,通过邮件或者api接口的形式发送到需求终端。

在python构造过程中主要有三个部分,访问数据库提交写好的sql,构造邮件或者api请求。将代码组合好,然后放到服务器,通过自动化任务进行配置操作。

这个工作最大的好处就是经常周期性的工作在写好代码后,可以全流程自动化,节省大量的时间做一些其他有意义的工作或者学习。以上就是我工作中主要用到的一些必备代码编程了,其实知道自己要实现什么、然后选择通过哪些编程语言去实现就好了,每个编程语法都只有一行,难的不在编程,只要你需求清晰,有构造思维。

最后,其实你与策略分析专家就隔着一个强大的构造逻辑思维能力,让自己的逻辑思维强大起来吧,加油!!!

微信公众号搜索:「 金科应用研院」
可以从菜单栏点击「在线学习」
更多风控培训课程与干货学习资料,都在微信公众号
回复关键字: **「风控量化包」**➡️领取干货学习资料
回复任意词可以加我们官方微信加入风控学习群
不定期分享干货资料,一起讨论风控经验~

你可能感兴趣的:(风控策略,风险控制,风控系统)