zoukankan      html  css  js  c++  java
  • 风控数据分析-反欺诈

    python信用评分卡(附代码,博主录制)

    目前贷款的风控因为每一个样本的收集都需要放款来收集,想想每人放一万,一个亿也就只能放1万人,所以样本量不会太大。所以所谓大数据风控主要是大在特征的数据上。很多时候是用了很多传统上不怎么敢用的特征。比如传统风控比较害怕missing value 比较害怕不稳定的特征 这些都是大数据风控需要解决的。

    到模型,既然是特征多,样本少,那就需要一个非常抗过拟合的模型。另外如果是单独针对反欺诈而不是信用,因为问题比较非线性,所以需要一个有非线性能力的模型。满足这两者要求的都可以。

    当然上面说到的只是针对预测贷款用户好坏的二分类问题,至于很多风控领域的其他问题,就有不同的解决方案了。

    说到有效性。据我所知目前市场上有一些非常小额短期的产品已经可以完全按照一个模型放款并盈利了。完全不需要人参与。这类产品通过小额解决了样本少的问题。通过短期解决了收集label慢的问题。所以还不太容易推广到大额长期产品上去。


     

    我理解,目前大数据风控主要分为三类:

    1. 反欺诈模型
    2. 二元好坏模型
    3. 资产包风控模型

    由于题主提出的问题围绕着风控模型,而讨论模型必定和实际的应用场景和数据源相关,因此就前四个问题一并回答。

    首先金融科技公司大致分为三类,基于线上垂直领域(教育、医疗、电商)、基于特定客群(学生、蓝领、白领)、基于线下场景(车贷、租房)。不同公司在数据维度、授信客群、产品上都有较大区别。基本而言,风险主要集中于信用风险欺诈风险

     

     

    一、模型在信用风险的用途:

    1.授信准入阶段

    首先是授信准入阶段,此阶段最重要的模型是进件评分卡模型,数据来源主要分为申请信息、历史消费信息、外部信息(例如多投借贷、公积金等)。常用模型包含LR、Xgboost、FFM等。不同模型的选取由是否需要在线更新、可解释性、线上部署环境等多种因素决定。LR的研究非常成熟,有完整的工业分布式解决方案和在线增量学习的理论基础,包括各种带正则项的变种,是非常理想的建模方法,很多时候它还会作为基准型,用于评价复杂模型的提升效果。

    一般的线性模型会遇到两个问题:

    一是非线性特征的学习,比如年龄。一般使用的方法是进行变量离散化,把年龄分成不同的段或者使用稀疏编码或者自编码等算法对品类或者其他信息进行重构。

    二是交互影响,例如收入特征和年龄特征的交叉。高收入的中年人是干爹和干妈,高收入的年轻人是高富帅和白富美,两者的特点完全不一样。所以我们也会使用Xgboost等模型加工非线性特征,或使用FM/FFM类算法学习交叉特征,以此提升模型拟合能力。

    此外在这个环节需要注意的是,由于很多公司的数据维度是有限的,分数低的用户并不一定是逾期风险较高的,而可能仅仅是留下数据较少的用户,随着业务的逐步扩张,怎么再去找更多的维度或者在原有数据维度上构建更细腻度的特征来刻画之前无法覆盖的用户群体是关键。

    其次由于黑产的猖獗,时刻需要提防刷分、养号的用户,最好的解决方式是通过分析异常群体的行为,构建有区分度的特征或者引入更多数据维度使得可以更加细腻的刻画正常用户的行为,最后还需要结合产品去完善模型。

    业务扩张的时候,客群的分布可能发生较大变化,引起的概念漂移也是值得关注的。


    2.用户生命周期阶段

    当用户准入后需要进行用户生命周期管理,常用到模型是行为评分卡

    和准入阶段不一样,在这个阶段,用户由于大多已经有过至少一次的还款行为,因此可以在数据维度加入借贷数据。

    除此之外,需要考虑如何调整额度和息费,保证优质的用户得到更低的息费和更高的额度,而数据表现较差的用户需要用更高的息费来覆盖风险。

    但不顾风险的一味最求高收益和不求收益的低风险都是没有意义的。定价模型的重点在于对用户需求和风险的合理预估,调整各个用户群体的息费和额度档次。实则可以看成对资金在不同风险回报的分配,使得在一定的风险下,总体风险收益最大化,技术上会涉及很多带约束的优化问题。


    3.催收阶段

    最后一个阶段,一小部分用户会逾期进入催收阶段。

    这个时期重点是失联修复和催收评分卡,即刻画用户经过一定的催收动作后还款的可能性。

    失联修复很好理解,就是通过各种社交数据,建立起关系网络找出与欠款人可能相关的人或者欠款人的其他联系方式。而催收评分卡需要使用到催收数据,催收数据大多是文本音频类型文件备份,因此对这种非结构类型数据的挖掘是这个阶段的核心。

    催收的时机,是催收成功最重要的因素。由于催收资源有限,我们需要按照一定的分配规则来分配催收资源。在逾期的较早时期,应该将更多的资源放在较难催收的用户上,而其他的用户可能由于是忘记还款或者其他的非恶意拖欠原因没有还钱,可能给予一段时间会自我救赎;而在催收晚期,则需要放置更多催收资源在能够催回的用户上,尽最大可能降低损失。


    二、模型在反欺诈风险方面的用途:

    除了上述的信用风险,还有一块较大的职责就是欺诈风险。

    现阶段,业界更多关注的是有组织参与的中介欺诈,常见的如批注、盗号、薅羊毛、养号、套现等诸多行为的识别。由于是团伙作案,更多是基于社交网络的社团发现算法来对中介的识别,或者是利用套现中的地址集中性相似性等特点来识别中介,或使用时间序列算法来分析用户的历史行为轨迹,手机传感器信息等生物指纹数据来核实身份。

    欺诈风险的难点有别于信用风险,在较多场景下很难定义好坏用户。因此关键在于标签的获得。通常需要同案件调查人员配合,因为他们能够准确定义欺诈,同时能够还原犯罪手法,针对于模型Y变量定义,X变量设计都很有帮助。

    其次,由于对抗性强,因此如何检测未发现的欺诈模式和模型的更新速度更加关键。目前这一块工作业界发展都比较滞后。

    最后,授信客群的变化或者欺诈团伙作案手法的变化导致原有模型可能失效,加上风险的滞后性,最新可用的训练数据可能已经离目前较远,如何从最新的数据获取模式与旧的数据模式的遗忘是难点。


    三、补充

    最后,补充如下几点模型评测的注意事项:

    1. 由于线下训练环境和线上真实用户群体存在差异,模型的泛化能力很重要,需要确保模型学习到的是有区分度的模式而不是数据中的噪音

    2. 线下使用评测指标主要是刻画准确度与区分度的ks、auc、洛伦兹曲线和Lift曲线等和模型稳定性指标psi。

    3. 客群逾期率的高低和公司产品的形态有重要关系,短期提升可以通过反欺诈技术得到改善、而中长期需要依托信用风险模型、但最终还得看产品的授信客群,面向不同客群的风控模型的指标对比试没有意义的。


     


    结合平时的工作经验回答下,大数据风控一般来讲有如下几个特征:
    1.高对抗性
    现在黑产非常庞大,刷单、薅羊毛、密码爆破、扫号、发帖机、灌水等等时时刻刻都在发生,无时无刻不在攻防。
    2.灵活性
    攻击者不断变化特征和行为,风控策略每天都需要更新,必须要保证风控策略的灵活性。
    3.准确性
    风控策略首先需要保证准确性,在保证准确性的同时再去提高召回率,准确性太低肯定会引起大量用户投诉。

    大数据风控对模型的挑战:
    1.模型的泛化能力
    我们平时上线的一些模型,上线时可能效果非常好,但是上线后命中量基本是直线下降状态,一周后命中量可能降到接近零。不得不佩服黑产的强大比较简单的模型意义不大,几天甚至几个小时就可以尝试出来并规避。我们知道复杂的特征和模型可以增强模型的泛化能力,采用复杂特征和更多维度的特征是很有效的。
    2.模型的可解释性
    风控模型识别出来的数据需要做相应的处理,任何机器识别处理都不可能完全避免用户的投诉和异义,对于模型一定要了解业务特征,能够转化为客服和用户可以理解的语言去解释,使得任何处理我们都有理有据。
    3.模型的更新速度
    高对抗性场景下,模型快速更新是关键

    使用的模型:
    1.聚类: 比如常见的相似文本聚类,大量用户发相似帖子是常见的灌水行为,需要处理。
    2.分类:比如我们根据已经识别的有风险和无风险的行为,去预测现在正在发生的行为,根据关键字动态去识别预测效果不错。
    3.离群点检测:比如登录行为,当同ip登录大量登录失败,这种行为可能是暴力破解,当同ip登录基本全部成功,这种行为可能是机器登录,采用离群点检测发现这两类行为并处理。
    4.深度学习:广告图像识别,黄色图像识别等

    具体模型和技术:
    我们主要使用了kmeans,dbscan,随机森林,c4.5决策树,logistic regression,cart,adaboost,svm,em,深度学习等模型。数据和特征比模型更重要,数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。使用的框架有spark,storm,hadoop,caffe,libsvm,scikit-learn等

    python风控建模实战lendingClub(博主录制,catboost,lightgbm建模,2K超清分辨率)

    https://study.163.com/course/courseMain.htm?courseId=1005988013&share=2&shareId=400000000398149

     微信扫二维码,免费学习更多python资源

  • 相关阅读:
    vector<vector<int>> 判断三个数为一组是否重复
    数位dp——hdu2089不要62
    nyoj1099 四点坐标判断正方形
    构造回文——最长公共子序列问题 java
    nyoj08 一种排序
    记录一个protobuf枚举类型引发问题的分析和思考
    记录一下996.icu
    Android N requires the IDE to be running with Java 1.8 or later
    使用fresco后引发的关于造轮子的思考
    使用了一段时间的instant run 记录一下遇到的问题
  • 原文地址:https://www.cnblogs.com/webRobot/p/8085875.html
Copyright © 2011-2022 走看看