风控是个很专业的领域,避免不了内行忽悠外行的现象。而数据把戏(Trick of Data)就是其中常见的一种。如何识别和应对呢?
在读研究生的时候,曾经跟师弟们做过一次交流,其中举到一个例子:
如果因变量是中国的人均GDP,自变量包括你家门口的那棵树的高度,你用了简单的模型去拟合,结果你会得到“你家门口树的高度,对中国人均GDP有着显著的促进关系。”这样啼笑皆非的结论。
为什么会这样?
主要是因为我们过多的重视了变量之间数量上的关系,而忽略了变量之间的经济学联系,缺乏了经济学理论的思考才会这样。
这样的结论就是一种数据把戏(Trick of Data)。
工作之后,发现也有很多需要模型的地方,而跟很多风控乙方沟通发现很多乙方都会用种种Trick of Data 来忽悠并不是专业做模型的业务人员,所以从今天开始会更新几篇关于这种数据把戏的文章,各位在做业务交流的时候可以避免类似的坑。
EP01 为什么总有乙方号称他的模型效果达到0.6?
我相信做风控策略的小伙伴在与风控乙方接触的时候,总会有那么几个乙方会去推销自己的某个数据或者模型分,而模型的区分效果张口就是0.5甚至0.6,回去一查,哎哟,这是个很好的模型啊,赶紧签商务合同接进来试试,结果发现差强人意?
这个时候乙方的销售会说一定是你们的业务跟模型样本不太匹配,要不我们再联合建模下?
你不信邪,自己开始做模型,结果怎么都达不到人家的精度,你是不是开始郁闷:
为什么乙方的模型能达到这么高的k-s,你却不行?
首先,什么是风控模型中的KS值?
KS用于模型风险区分能力进行评估:指标衡量的是好坏样本累计分部之间的差值。
KS的计算步骤如下:
1. 计算每个评分区间的好坏账户数。
2. 计算每个评分区间的累计好账户数占总好账户数比率(good%)和累计坏账户数占总坏账户数比率(bad%)。
3. 计算每个评分区间累计坏账户占比与累计好账户占比差的绝对值(累计good%-累计bad%),然后对这些绝对值取最大值即得此评分卡的K-S值。
所以确实是这样:
好坏样本累计差异越大,KS指标越大,那么模型的风险区分能力越强。
因为K-S值确实是代表着很强大的区分力,所以很多甲方的业务同伴就会被忽悠,那在排除乙方销售在数据造假的情况下,为什么有的乙方确实就能宣称自己模型K-S值高达0.6呢?这主要有以下几种可能:
如果建模过程中坏样本比例过高,那么是可以有机会达到这个值的。
举例如下:
(1)如果建模样本中好坏样本比例good/bad=50/50,坏账率为50%;k-s值0.6指的是如果在误杀20%好用户的情况下可以识别80%的坏样本;那么使用模型之后的结果为good/bad=40/10,坏账率变为20%;这个我们做风控策略的人都知道在使用一些较好的变量的情况下是有可能的,因为毕竟做到50%的坏账已经是够烂的了。
(2)如果建模样本中好坏样本比例good/bad=80/20,坏账率为20%;k-s值0.6指的是如果在误杀20%好用户的情况下可以识别80%的坏样本;那么使用模型之后的结果为good/bad=64/4,坏账率变为5.88%,其实我们知道这个一个模型是很难做到。
通过上述这个例子我们知道,不同的样本比例的情况下K-S值提升的难度是有很大不同的,不同模型的K-S值比较优劣前提是要基于建模样本比例类似,否则不具有横向比较性。
2. 样本滞后性
乙方一般选用的样本都是来自于甲方数月之前的业务数据,但是选用变量的时候存在着滞后性,而这种滞后性会导致变量偏差,比如最简单的芝麻信用分,在3个月前进行业务申请的时候是680,但是此时该用户的芝麻信用分因为多次逾期已经降到550了,所以在建模的时候有很多模型方都没有考虑到这种变量时滞性,尤其是重要变量的时滞性,导致模型能够得到一个超高的k-s。
3. 模型过拟合
这个我相信专业的建模人员都不太会去犯这样的错误,但是不可否认还是有很多良莠不齐的乙方用不懂业务的纯建模人员,在这样的过程中会犯类似的错误,尤其是深度神经网络和随机森林这样的算法,刻意的调参有可能达到过高的k-s值,这才是真正的数据把戏。
模型的k-s值是一个很好的体现模型效果的变量,但是一定要注意了,不要被这样的数据把戏给蒙蔽了,业务人员还是要懂一点模型才不至于被忽哟,当然风控的建模人员也要懂一点业务才行。