模型验证样本是有要求的
模型验证样本需要与前面建模样本进行完全相同的处理,即:
- 模型的验证样本同样需要进行数据清洗、缺失值填充、分类变量WOE转换等处理;
- 在缺失值进行填补时,需要使用训练集的统计量而不是验证样本的统计量。例如训练集使用年龄的均值35岁作为填补缺失值,那么验证样本也应使用35作为填补缺失值,不可以随意进行缺失值的填补。
混淆矩阵有什么用
逻辑回归模型的几个衡量指标如洛伦兹曲线、ROC曲线、lift曲线等皆来源于混淆矩阵,如果针对同一个问题构建不同的模型,当进行模型间效果比较时,经常会用到这三个曲线。
不单单是逻辑回归模型具有混淆矩阵,只要因变量为离散形式的模型都具有混淆矩阵,混淆矩阵不是为逻辑回归模型设置的,而是为分类选择模型而设置的,连决策树与神经网络都会有混淆矩阵。
混淆矩阵中的数值是动态的数据,其中,A与D都是猜对的数据,理论上这两格中数据量越大越好,但是B与C的数据也是必不可少的,如果没有B与C部分的数据,则会造成过度拟合。一般,混淆矩阵会涉及到下面几个解读指数:
- 正确率=(A D)/(A B C D),即猜对了比上总量;
- 灵敏度=A/(A B),即所有真实1中猜对的比例;
- 特异度=D/(C D),即所有真实0中猜对的比例;
- 命中率=A/(A C),即猜为1的数据中猜对的比例。
没人用决策树做信用评分模型
从模型稳定性角度来看,决策树不能做信用评分模型,原因涉及到决策树算法背后的搜索逻辑。决策树进行拆分时,其算法会以搜索的形式去寻找最优值,搜索的方式有穷举搜索与启发式搜索两种:
- 穷举搜索即设置一个很小的间隔,进行逐值扫描,速度较慢,R和SAS中一般会先设置5000次穷举;
- 启发式搜索为一种区间搜索,即将值分为不同区间,在区间内进行搜索。例如质数的搜索形式即为启发式搜索。
上面两种搜索形式,无论使用哪一种,都极有可能错过最优值,并非算法有问题,而是计算的方式存在问题,因此任何的统计软件都必须考虑截断误差,如果截断误差控制的不好,便很有可能会出现漏掉最优值的情况。
决策树最大的问题在于,每次计算规则都会发生变动,所以我经常在信用评分建模前用决策树进行风险分池,而绝不会用决策树去主导构建信用评分模型。何谓风险分池,举个例子,例如某个客户信用卡逾期,但是经查询发现该人为本地首富,那么可以断定该人违约可能并非出于本意,很可能是发生了意外的情况导致违约,风险分池就是将这样的人与老百姓分池分开。
我眼中的ROC曲线
衡量模型效果的指标之一为ROC曲线,一般,ROC曲线的取值在[0.5,1]之间,如果:
- [0.5,0.7)表示模型效果较低;
- [0.7,0.85)表示模型效果一般;
- [0.85,0.95)表示模型效果良好;
- [0.95,1)好到这种程度的模型一般不会存在,至少我从来没有遇到过。
一般,ROC曲线还会出现如下两种不同的情况,分别适用于不同的业务场景:
- 违约分值高处敏感: 如果建模后ROC曲线是这样的形态,说明模型在违约风险高人群中的预测能力很强,而对于违约风险低的人员预测能力较差。很多的业务场景会专门要求做出这样的模型,例如汽车金融,因为业务的特点会要求筛选出极高风险的客户,而对于大部分客户还是予以分期贷款的。
- 违约分值低处敏感: 如果建模后ROC曲线是这样的形态,说明模型在违约风险低的人群中预测能力很强,在高风险人群中的预测能力很弱,例如银行的信用卡中心,业务需要明确授予低风险的优质客户较高的额度,所以需要明确哪些客户的违约风险较低。
营销场景最看重提升度曲线
提升度曲线也是衡量分类模型效果的指标之一,它衡量的是与随机选择相比,模型对于响应的预测能力的好坏程度。一般,提升度曲线越往上、下降越慢表示模型越好。
通常,营销场景中会更多的用到提升度曲线,即可以先找找准最有可能是目标的客户进行电话推销,可以较为节约成本。而风险行业处于成本的考虑则不太使用提升度曲线。所以做互联网金融更为关注ROC曲线与KS曲线,而业务营销场景会更为关注Lift曲线。
SAS EM中可以提供lift曲线。
信用评分模型最看重KS
一般,信用评分模型最为看中的模型指标不是ROC曲线、不是洛伦兹曲线,也不是lift曲线,而是KS。KS曲线用于表示模型对于好坏样本的区分程度。通常:
- KS小于20,表明模型没有区分好坏的能力;
- KS介于20-40之间,表明模型勉强接受;
- KS介于41-50之间,表明模型有好的区分能力;
- KS介于51-60之间,表明模型有很好的区分能力;
- KS介于61-75之间,表明模型有非常好的区分能力;
- KS大于75,很可能建模出错,不太可能出现这么高的情况。
通常模型的监控工作只需要使用KS曲线进行监控即可,如果事后监控发现好坏样本之间的差异已经不太明显的时候,则说明模型已失效,需要重新进行模型修正、调整。