偷偷潜入了风控大佬的技术交流群,曝光最硬核的聊天记录

2019-08-15  本文已影响0人  七月在线

单身的梅帅联合了十几位BAT的大佬,拉了一个风控算法交流群。互相抱团取暖,鼓励技术交流,共同进步。并将问题记录在群内的在线文档中,目前已有近8000字问答记录!!!还在每天飞速增长~

下面是少量的第一期群答疑节选。全是干货,一睹为快吧!

1.问:什么我们做评分卡的时候要用woe编码,而不是用别的编码方式呢?比如onehot之类的,仅仅是因为woe可以把特征从非线性变成线性的吗?

答: 因为onehot后高维稀疏,模型学习是有困难的。一般模型会做embedding,但是做了embedding就不可解释了。这不符合某些风控场景的解释性要求。所以用woe来代替。当然WOE有一点点的过拟合倾向,但是对分类变量来说,依旧是业内最佳实践方案。

2.问:分箱后,各箱badrate单调递增从业务上怎么理解呀?

答:我们有个先验知识,多头越多badrate越大,历史逾期越多badrate越大...等等,如果变量分箱后不符合这个先验,可能就把他剃掉了。

3.问:5万负样本,200正样本,B卡,不只是提高额度,会拒绝一部分客户,怎么建模

答:5万负样本是没有做下采样的必要的,200正样本无论用什么方法做过采样说实话由于自身携带的信息量比较少,学习的应该也不是完全的。所以这时候建议先略作改动,评价函数加一项,负样本的召回率,也就是说这时候不是主要关注KS,而是对负样本究竟能抓到多少,然后负样本学习的时候一定要加权,权重就按照sklearn中逻辑回归默认的balanced方法就ok,而且如果是我可能生成一个决策树,把坏账从0.4%下降到0.12%左右我觉得就蛮好的了 

4.问:leader 给我的任务是对短信打标签,也就是判断出短信属于的标签是哪一类,这样一个任务是提取文本关键词的任务吧

答:我建议先确定每个词对每个类别的贡献度。简单来做就是每种类别找几个词,手动划分一下有这个词,就属于这个类别。复杂一点来做,就训练个模型,确定每个词对每种类别的贡献度,然后对每条记录做个预测,排名前几的标签都给他。

5.问:那简单的除了您之前说的那种统计坏的词,然后正则匹配的还有其他的吗?leader 之前说拿到词的重要度,是在整个语料中的一个重要度的话,tf-idf 是不可行的,现在要出一个版本的话,您有什么建议吗?

答:是这样的啊,你们首先需要每篇文档的标签,然后去找词的重要度,不然只能拍脑袋呀 。

然后想知道每篇文档的标签,你们可以先用之前的方法挑选一些特别明显的词 。给文档打标签。然后这样迭代着做。

6.问:最近面试数据分析师岗位,和算法岗有什么不一样么?会提到数据敏感,究竟应该怎么回答?

答:区别是分析师是业务+报表+算法,工程师是业务+算法+工程。数据敏感是玄学,关键要知道数据怎么分析,你告诉他,数据要对比着分析,随便拿出一个值就知道这个值是什么水平还是比较困难的。比如我们分析模型表现,分析变量稳定性。不是给出一个月份的分布我们就知道模型好不好,而是要两个月作对比才知道。

7.问:想问一下,现在公司是不是先准入规则,然后再进入一个pre-A模型,然后再是反欺诈模型,然后是A卡之类的?

 答:可以理解成模型是嵌在规则里面的,规则到处都有

 8.问:就是你说准入规则,pre-A, 反欺诈规则反欺诈引擎,还有风控模型,一般都不会选用相同的特征?因为客户群体会越来越少,这个我有点不理解。。。

 答:这个问题不只有一个同学问过我。也是不单单我们这个场景才有的。基本上每个机器学习模型或多或少都会遇到我们这种问题。我们一般是不会用相同的特征做重复筛选的。这样会导致样本偏移更严重。就是说,被拒绝的人,是由于某些特征表现差,被拒绝的,那随着时间推移,下次建模的样本里面,就没有这些人了...这些这些特征上的样本分布就变了 。

9.问:我看之前逻辑评分卡 ,评分转化的部分 ,ln(odds) =X*beta+intercept   

但是我看您写的转换没有考虑常数项,行业内都是这么做的么,不考虑常数项?

答: 我记得代码里面有一项应该把他平衡掉了,那个公式的目的其实是,()中的那一项决定等于基础分的概率值,()的系数决定步长,()+决定基础分等于多少

10.问:用三种标签学出来的三个模型,从三个维度给一个人的欺诈风险打分,怎么给这三个模型进行融合,因为单个用户申请线上预测,无法根据客户在各个模型排名取平均。但这三个模型的输出的概率区间又是不同的,比如模型A的输出区间是[0-0.4],模型B输出区间[0-0.9],也不是正态分布,zscore标准化不能用,只能MinMax先进行标准化?再进行分数融合?

答: 对的,一般要minmax,规约到一样的范围内

11.问:使用BiLSTM 对用户行为进行建模时,神经网络的输入层是什么?输出层是什么?怎么把用户行为数据转换成神经网络输入层的向量?

答:打个比方啊,额度使用率按照月份的时间序列就是,前0-30天的额度使用率,前30-60的额度使用率,前60-90的额度使用率...变成一个列向量。有多少特征(额度使用率是一个特征)就有多少个列向量

12.问:在ks上训练集和测试集相差不大,但在auc上却相差较大,这是为啥? 

答:下图是KS的差距,两者差不多,曲面面积可以理解成是AUC的差距,差的就很多了

13.问:在xgboost或者lightgbm建模之前是否进行相关性处理,去掉相关性较高的变量?

答:要的。lr中我们是为了对向量空间描述的最好。在xgb主要是想去掉相互替代性较强的特征。比如一个特征给他找相关性特别强的9个特征放在模型里面,存成不同的名字,你会发现他本来重要性是10,每划分一次,一个特征就比另一个好用那么一点,这么弄了之后十个特征的重要性都变成了1,然后被我们用feature_importance>5给筛掉了......这多尴尬

14.问: 在评分卡上线以后。进行监控的时候,监控的周期是多少,是将新数据下载到本地来计算ks、psi以及变量稳定性等这些指标吗 ?

答:一般有日报周报月报,看客群量大的话,周期可以短一点,量少的话,计算指标没什么意义 

15.问: 怎么样才能具备招聘中所反欺诈岗位所要求的? 

答: 归纳一下就是要,明确欺诈的定义,使用数据分析方法,对接第三方数据 。

16.问:想了解下金融风控的架构知识,能不能发点资料学习下

答:见思维导图

17.问:关于xgboost使用泰勒展开式的优点?泰勒展开取得函数做自变量的二阶导数形式, 可以在不选定损失函数具体形式的情况下, 仅仅依靠输入数据的值就可以进行叶子分裂优化计算, 本质上也就把损失函数的选取和模型算法优化/参数选择分开了. 请问为什么在 可以在不选定损失函数具体形式的情况下, 仅仅依靠输入数据的值就可以进行叶子分裂优化计算?

答:下图中,g和h都是和损失函数有关的,所以不可能完全不考虑损失函数,这个表述是错误的。

18.问:不平衡场景下的过采样(朴素、SMOTE)后训练的模型都需要结果概率校正吧?如何操作?

答:只有单个模型不需要做校正,如何需要和其他模型做融合或者做比较的时候可以做.

19.问:现在市面上在金融风控中用的无监督算法都有哪些?

答:主要是基于图的离群检测和聚类,还有个体反欺诈中常用的孤立森林,LOF等。

20.问:xgb变量重要性用哪一个指标?

答:1、通常我会直接用weight,他们筛选出的变量略有区别,但是使用下来区别主要在于重要性最低的那几个可以互相替代的特征,具体用谁其实并不重要。经验告诉我们total_gain效果可能会略好。

2、是的,xgb筛选特征,然后用新的特征建模,但是通常不建议筛选后还用xgb建模,这不符合模型融合的策略。

3、xgb其实是没法解释的,如果希望有逻辑回归的可解释度,建议相同数据、相同变量,带入lr建立一个陪跑的模型,寻求解释的时候去lr中找原因。特征相同的前提下,不会有太大出入的。

4、xgb筛选特征可以理解为用均方差最小来做特征筛选,和IV、WOE属于同一种筛选方式,,描述的都是特征对分类任务的贡献度,一般用一个就行了,每个人的方法都不一样,见仁见智。

以上就是第一期问答的内容啦。目前群成立已接近24小时,已经有超过150位专业人士加入。如果没看够的小伙伴,更多大数据与机器学习相关内容请后续文章~

上一篇下一篇

猜你喜欢

热点阅读