信用模型总结
一 模型方法
(1)LR-逻辑回归,线性回归原理一样。
Sigmoid函数:公式如下,作用就是把Y转换成0-1之间(逾期)的概率。
f(x)=1/(1+exp(-x))
优点:容易解释,传统银行、discover 、capital one这些老牌的,目前A卡只用LR。
缺点:容易欠拟合,没办法捕捉到非线性关系;对变量过于敏感,需要做很多特征处理,如特征归一化,特征异常值处理。
Q:LR怎么优化去捕捉到非线性关系?
A:(1)衍生变量:是否缺失,是否是0,特征平方/开方(2)特征之间的interaction就是构造变量X1*X2
补充:特征归一化就是变成0-1内,保持数据量纲一致,0-max、min-max,0-95(这个用的多,因为顺便异常值也给处理了)...方法都可以。
(2)集成学习Ensemble Learning,就是模型融合
就是三个臭皮匠顶个诸葛亮,把一群弱分类器结果组合一起,又有很多方法。
Bagging:样本又放回的采样,随机森林(Random
Forest,简称RF)是Bagging典型一种,就是每次抽样本跑一个弱的分类器,多个分类器投票决定最终结果。
Boosting:就是下一轮树基于上一轮结果优化。Adaboost对上一轮样本优化,对上一轮分类分错的样本加权重,下一轮重点学习。GDBT(Gradient Boosting Decision Tree)每个子模型是根据已训练出的学习器的性能(残差)训练出来的,下一轮树拟合上一轮的残差,原理就是要最快到达终端,那就找梯度(斜率),沿着负梯度方向走。xgboost是陈天奇大牛新开发的Boosting库,和GBDT差不多,好在处理速度(算法层面加了block存储中间过程重复利用)和防治过拟合(在代价函数里加入了正则项,用于控制模型的复杂度)。
(3)LR+GBDT
来源:Practical Lessons from Predicting Clicks on Ads at Facebook
http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=A54CCA7D4A8F05B6636C9D64316BCF96?doi=10.1.1.718.9050&rep=rep1&type=pdf
二 特征工程
衍生变量:
按照时间衍生,近XXX小时/天/月维度。工作时间/I休息时间 浏览/登陆/购
(2)分类变量处理常用方法。
one-hot,比如性别有俩值sex:male sex:feamle,one-hot转化就是sex_male:1和sex_female:1。缺点:分类太多就会稀疏 ,信息损失。
按照业务意义处理,如年龄分断,时间点分工作时间 休息时间
(3)Woe转化:对训练集计算woe,
把这个变量进行分组处理(也叫离散化、分箱),使用分箱的woe代替原始特征值。
WOE=ln(好客户占比/坏客户占比)×100%=优势比
woe转换并不一定能显著提高模型质量,但是可以反映变量贡献度,标准化,对异常值不敏感。合作建模时候避免原始数据泄露(很多合作建模方都会用woe不给原始数据)。
(4)特征筛选
覆盖度:特征类别整体覆盖度,各个月份变动较大或者覆盖率整体较低则剔除
IV:单个特征IV大于0.03。补充IV和woe的区别:第一个原因,当我们衡量一个变量的预测能力时,我们所使用的指标值不应该是负数。第二个原因:体现出了变量当前分组中个体的数量占整体个体数量的比例,对变量预测能力的影。
补充:WOE=ln(好客户占比/坏客户占比)×100%=优势比
IV=ln(好客户占比/坏客户占比)×(好客户占比-坏客户占比)
和咱们以前算的lift表达差不多。
特征稳定性:各个特征分布值按照month/week维度来看,均值、或空值、0值、最大值不稳定,变动幅度较大
使用模型筛选:GBDT具备特征筛选功能,使用gbdt在参数较小 树深不超过3 树个数不超过200情况下,入模特征
随机数:增加5-10随机数,使用gbdt建模,对入模特征中,处于随机数之下的特征剔除。可以加入部分人工调节保留部分随机数之下的特征
三 防止过拟合
(1)模型复杂度:树模型最重要的树深和树的颗数,单棵数的复杂度,学习率、Col——sample(每一棵子树选取部分特征)和subsample(每一棵子树选取部分样本),也就是行抽样和列抽样。
(2)正则化:典型的做法在优化目标中加入正则项,通过惩罚过大的参数来防止过拟合。就是在损失函数上加上这个东西。。alpha||w||,alpha是一个可调的参数,控制着正则化的强度。有L1正则化和L2正则化。使用L1正则化的模型叫做Lasso回归;使用L2正则化的模型叫做Ridge回归(岭回归),差别是L1惩罚项是以W绝对值为目标,L2是平方和,L1更容易使参数变成0,因此成为一种很好的特征选择方法。哪个效果好根据实际场景去试。
四 特征共线性
(1)知道vif
方差膨胀因子(Variance
Inflation Factor,VIF):是指解释变量之间存在多重共线性时的方差与不存在多重共线性时的方差之比。容忍度的倒数,VIF越大,显示共线性越严重。经验判断方法表明:当0<VIF<10,不存在多重共线性;当10≤VIF<100,存在较强的多重共线性;当VIF≥100,存在严重多重共线性
(2)解决
特征相关系数比如皮尔森相关系数,剔除一个
PCA 主成分分析降维
逐步回归法
正则化:惩罚项系数C的增大,共线性的影响将越来也小。如上L1和L2正则法
五 FICO转化的方法
预测的0-1概率分转换成好理解的信用分。
fico_score = int(ai - round(bi *math.log(score / (1 - score))))
其中score为预测样本的P值,通过ai 和bi调节分数分布
ai odds为1时候分布 bi odd翻倍,打分增加
https://www.worldprogramming.com/blog/credit_scoring_development_pt1