本学习笔记为阿里云天池龙珠计划金融风控训练营的学习内容,学习链接为:[https://tianchi.aliyun.com/specials/activity/promotion/aicampfr]
[https://tianchi.aliyun.com/notebook-ai/detail?spm=5176.20850282.J_3678908510.2.f2984d57oDgMO5&postId=170948]

Content

  1. 项目概况
  2. 数据概况
  3. 预测指标
  4. 项目流程
  5. 读取数据的两个方法
  6. 分类指标计算示例
  7. 经验总结
  8. 评分卡拓展

项目概况

背景:金融风控中的个人信贷
数据:贷款申请人的数据信息
目标:预测申请人是否有违约的可能
评价指标:AUC

项目流程

  • 数据EDA:分布、缺失值、异常值
  • 特征工程:基础特征、特征变换与衍生、特征过滤、特征选择
  • 建模:逻辑回归、xgboost、LGBM
  • 模型评估与调参:网格搜索、贝叶斯调参
  • 模型融合

分类算法常见的评估指标

1、混淆矩阵(Confuse Matrix)

  • (1)若一个实例是正类,并且被预测为正类,即为真正类TP(True Positive )
  • (2)若一个实例是正类,但是被预测为负类,即为假负类FN(False Negative )
  • (3)若一个实例是负类,但是被预测为正类,即为假正类FP(False Positive )
  • (4)若一个实例是负类,并且被预测为负类,即为真负类TN(True Negative )

2、准确率(Accuracy)

准确率是常用的一个评价指标,但是不适合样本不均衡的情况

3、精确率(Precision)

又称查准率,正确预测为正样本(TP)占预测为正样本(TP+FP)的百分比。

4、召回率(Recall)

又称为查全率,正确预测为正样本(TP)占正样本(TP+FN)的百分比。

5、F1 Score

精确率和召回率是相互影响的,精确率升高则召回率下降,召回率升高则精确率下降,如果需要兼顾二者,就需要精确率、召回率的结合F1 Score。

6、P-R曲线(Precision-Recall Curve)

P-R曲线是描述精确率和召回率变化的曲线

p-r

7、ROC(Receiver Operating Characteristic)

  • ROC空间将假正例率(FPR)定义为 X 轴,真正例率(TPR)定义为 Y 轴。

TPR:在所有实际为正例的样本中,被正确地判断为正例之比率。

FPR:在所有实际为负例的样本中,被错误地判断为正例之比率。

roc.png

8、AUC(Area Under Curve)

AUC(Area Under Curve)被定义为 ROC曲线 下与坐标轴围成的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。AUC越接近1.0,检测方法真实性越高;等于0.5时,则真实性最低,无应用价值。

问题与思考总结

  1. 查准率和查全率是一对矛盾的度量。
    一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。通常只有在一些简单任务中,才可能使二者都很高。
  1. AUC(Area Under the ROC Curve)指标
  • 在二分类问题中,模型评估阶段常被用作最重要的评估指标来衡量模型的稳定性。

  • AUC值是一个概率值,当你随机挑选一个正样本以及负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值,AUC值越大,当前分类算法越有可能将正样本排在负样本前面,从而能够更好地分类。例如一个模型的AUC是0.7,其含义可以理解为:给定一个正样本和一个负样本,在70%的情况下,模型对正样本的打分(概率)高于对负样本的打分。

  • 为什么要用AUC作为二分类模型的评价指标呢?为什么不直接通过计算准确率来对模型进行评价呢?
    ———因为机器学习中的很多模型对于分类问题的预测结果大多是概率,即属于某个类别的概率,如果计算准确率的话,就要把概率转化为类别,这就需要设定一个阈值,概率大于某个阈值的属于一类,概率小于某个阈值的属于另一类,而阈值的设定直接影响了准确率的计算。也就是说AUC越高说明阈值分割所能达到的准确率越高。

  1. PR曲线和ROC曲线
  • 与PR曲线相比,相对来讲ROC曲线会更稳定,在正负样本量都足够的情况下,ROC曲线足够反映模型的判断能力。而在正负样本分布得极不均匀(highly skewed datasets)的情况下(正样本极少),PRC比ROC能更有效地反映分类器对于整体分类情况的好坏。
  • 只画一个曲线时,如果没有data imbalance,倾向于用ROC(更简洁,更好理解)。如果数据样本不均衡,分两种情况:
    情况1:如正样本远小于负样本,PRC更敏感,因为用到了precision=(TP/(TP+FP))。
    情况2:正样本远大于负样本,PRC和ROC差别不大,都不敏感。
  • 对于同一模型,PRC和ROC曲线都可以说明一定的问题,而且二者有一定的相关性,如果想评测模型效果,也可以把两条曲线都画出来综合评价。
  1. KS曲线
  • KS曲线又叫洛伦兹曲线。以TPR和FPR分别作为纵轴,以阈值作为横轴,画出两条曲线。KS曲线则是两条曲线的在每一个阈值下的差值。
  • KS(Kolmogorov-Smirnov)值=max(TPR-FPR),即为TPR与FPR的差的最大值;
  • KS值可以反映模型的最优区分效果,此时所取的阈值一般作为定义好坏用户的最优阈值。KS值越大,模型的预测准确性越好。KS值的取值范围是[0,1] ,一般,KS>0.2即可认为模型有比较好的预测准确性。
    KS<0.2:模型无鉴别能力;

0.2-0.4之间,模型勉强接受;
0.41-0.5之间,模型具有区别能力;
0.51-0.6之间,模型有很好的区别能力;
0.61-0.75之间,模型有非常好的区别能力;
KS>0.75,模型异常,很有可能有问题。

  • 由于KS值能找出模型中差异最大的一个分段,因此适合用于找阈值(cut_off),像评分卡这种就很适合用KS值来评估。但是KS值只能反映出哪个分段是区分最大的,而不能总体反映出所有分段的效果,因果AUC值更能胜任。
  • 一般如果是如果任务更关注负样本,那么区分度肯定就很重要,此时K-S比AUC更合适用作模型评估,如果没什么特别的影响,那么就用AUC。