金融风控数据挖掘--Task1

赛题分析:

通过给定训练集数据训练得模型,利用AUC作为评测指标,预测测试集中数据评判各属性金融风险。


一.学习内容: 金融风控预测类常见的评估指标

1.ROC曲线

在信号检测理论中,接收者操作特征曲线receiver operating characteristic curve,或者叫ROC曲线)是一种坐标图式的分析工具,用于 (1) 选择最佳的信号侦测模型、舍弃次佳的模型。 (2)在同一模型中设定最佳阈值。 在做决策时,ROC分析能不受成本、效益的影响,从而给出客观中立的建议。即当在正负样本分布发生变化时,其曲线形状能够基本保持不变。

在衡量学习器的泛化性能时,根据学习器的预测结果对样本排序,按此顺序逐个把样本作为正例进行输出,将ROC曲线假正例率(FPR)定义为x轴,真例率(TPR)定义为y轴。对于二分类的数据,可分为正类(positive)和负类(negative),有四种类型,即:

混淆矩阵

真实情况 预测结果
正例 反例
正例 TP FN
负例 FP TN
将样本被划分为正类的概率排序,其中的一个正类概率作为阈值(threshold),大于等于threshold的测试样本作为正样本,小于threshold的测试样本作为负样本。那么根据真正类率和负正类率就得到样本个数个坐标点(FPR,TPR),由此得到ROC曲线。当两个模型的ROC曲线发生交叉,很难直观的说模型更好,这时候可以用AUC来作为一个比较合理的判据。
  • 真正类率(Sensitivity): 代表分类器预测的正类中实际正实例占所有正实例的比例。
    T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP

  • 假正类率(1-Specificity):代表分类器预测的正类中实际负实例占所有负实例的比例。
    F P R = F P F P + T N FPR=\frac{FP}{FP+TN} FPR=FP+TNFP

2.AUC

AUC表示“ROC 曲线下面积”。即曲线下面积测量的是从 (0,0) 到 (1,1) 之间整个 ROC 曲线以下的整个二维面积。

  • AUC = 1,是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器。
  • 0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
  • AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。
  • AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。

3.P-R曲线

P-R曲线常被用在信息提取领域,同时当我们的数据集中类别分布不均衡时我们可以用PR曲线代替ROC。

将P-R曲线查全率(Precision)定义为x轴,查准率(Recall)定义为y轴。其与ROC曲线类似,根据学习器的预测结果对样本测试集进行排序,"最可能"是正例的排在最左边,"最不可能"是正例的排最右边.按此顺序逐个把样本作为正例进行输出。

当P-R曲线越靠近右上方时,表明模型性能越好,与ROC曲线类似,在对不同模型进行比较时,若模型的PR曲线发生了交叉,则无法直接判断哪个模型更好.可以利用平衡点,即当查准率=查全率时的取值,如上图黑色线代表的模型的平衡点要大于橘色线模型代表的平衡点,表明前者优于后者,除此之外更为常用的是F1—Score,F1—Score 查准率和查全率是相互影响的,查准率升高则查全率下降,反之则下降。如果需要兼顾二者,就需要二者的结合F1—Score。

  • 查准率(Precision): 代表正确预测为正样本(TP)占预测为正样本(TP+FP)的百分比。
    P r e c i s i o n = T P T P + F P Precision=\frac{TP}{TP+FP} Precision=TP+FPTP

  • 查全率(Recall): 代表正确预测为正样本(TP)占正样本(TP+FN)的百分比。

R e c a l l = T P T P + F N Recall=\frac{TP}{TP+FN} Recall=TP+FNTP

  • F1-Score :

F 1 - S c o r e = 2 1 P r e c i s i o n + 1 R e c a l l F1\text{-}Score=\frac{2}{\frac{1}{Precision}+\frac{1}{Recall}} F1-Score=Precision1+Recall12

4.K-S

KS(Kolmogorov-Smirnov)统计量是由两位苏联数学家A.N. Kolmogorov和N.V. Smirnov提出。在风控中,KS常用于评估模型区分度。区分度越大,说明模型的风险排序能力(ranking ability)越强。

将K-S曲线将真正例率和假正例率都作为y轴,x轴则由选定的阈值来充当。

  • K-S:

K − S = m a x ( T P R − F P R ) K-S=max(TPR-FPR) KS=max(TPRFPR)

KS不同代表的不同情况,一般情况KS值越大,模型的区分能力越强,但是也不是越大模型效果就越好,如果KS过大,模型可能存在异常,所以当KS值过高可能需要检查模型是否过拟合。以下为KS值对应的模型情况,但此对应不是唯一的,只代表大致趋势。

KS(%) 好坏区分能力
20以下 不建议采用
20-40 较好
41-50 良好
51-60 很强
61-75 非常强
75以上 过于高,疑似存在问题

二.学习中遇到的问题

  • 因为对机器学习没有基础,一开始不懂的如何计算得出(FRP,TRP),其实就是不太清楚TP,FN,FP,TN具体的含义是什么。后来明白了TP为大于等于阈值的正样本,FN为大于等于阈值的负样本,同理知FP,TN。通过公式计算就可得出样本个数的(FRP,TRP)坐标点,可描绘出ROC曲线。最后比较可知,哪一个点下为最优阈值。

  • 另外一种方法:把横轴的刻度间隔设为 1 N \frac{1}{N} N1,纵轴的刻度间隔设为 1 P \frac{1}{P} P1,N,P分别为负样本与正样本数量。然后再根据模型的输出结果降序排列,依次遍历样本,从0开始绘制ROC曲线,每遇到一个正样本就沿纵轴方向绘制一个刻度间隔的曲线,每遇到一个负样本就沿横轴方向绘制一个刻度间隔的曲线,遍历完所有样本点以后,曲线也就绘制完成了。

  • 利用python调库同样也可以绘制出ROC曲线,

    from sklearn.metrics import roc_curve
    

三.学习的思考与总结

通过这次为时两天的学习,学到除均值、方差等常见方法以外的评估指标,对机器学习这一方面是刚接触,所以有很多地方理解起来比较费时间。总结起来就是ROC曲线被广泛应用于二分类问题中来评估分类器的可信度,当处理一些高度不均衡的数据集时,P-R曲线能表现出更多的信息。ROC曲线由于兼顾正例与负例,所以适用于评估分类器的整体性能,相比而言P-R曲线完全聚焦于正例。而当数据属性较多时,则采用P-R曲线为更优。

参考链接:
https://www.jianshu.com/p/2ca96fce7e81
https://www.cnblogs.com/dlml/p/4403482.html

你可能感兴趣的:(python,机器学习)