其他分享
首页 > 其他分享> > 常用风控评估指标汇总(混淆矩阵/AUC/ROC/KS/PSI/Lift/Gain等)

常用风控评估指标汇总(混淆矩阵/AUC/ROC/KS/PSI/Lift/Gain等)

作者:互联网

本文主要汇总一些常用于机器学习的评估指标,针对每个指标由浅入深,从”一句话解释“、定义及公式、计算/绘制步骤等方面一一总结。这些指标本身可用于很多业务场景,但因为我从事风控行业,本文涉及的例子都是风控的案例,重点介绍这些指标如何评估风控模型的效果。

1. 混淆矩阵

一句话解释 :混淆矩阵就是统计分类模型“归错类”和“归对类”的样本个数,然后把结果放在一个表里展示出来。

混淆矩阵

真实值

Positive

Negative

预测值

Positive

TP

FP

Negative

FN

TN

注:TP + TN + FP + FN = 总样本数


2. 准确率、精确率、召回率、F1 值

Accuracy = \frac{TP+TN}{TP+TN+FP+FN}

局限性:当两类样本数量很不均衡时,accuracy 就不能很好的反映模型的性能了。

Precision=\frac{TP}{TP+FP}

Recall=\frac{TP}{TP+FN}

\frac{2}{F_{1}}=\frac{1}{Precision}+\frac{1}{Recall}

\Rightarrow F_{1}=\frac{2PR}{P+R}=\frac{2TP}{2TP+FP+FN}

x = \frac{n}{\sum_{i=1}^{n}{\frac{1}{x_i}}},当 n=2,\frac{2*x_1*x_2}{(x_1+x_2)}

调和平均数又称倒数平均数,是总体各统计变量倒数的算术平均数的倒数,是一种集中趋势的度量。

调和平均广泛存在于世界各种角落,调和平均的哲学意义是在一个过程中有多少条平行的路径。

算术平均值中每个参数的权重都是一样的。

查准率和查全率之间的权衡

给定二元模型和阈值,我们不能同时拥有高查准率和高查全率,这是因为:

默认情况下,二分类模型的阈值为 0.5

1【高准确率,低召回率】:假定我们用逻辑回归建立"病人是否患癌"的二分类模型,我们需要提升阈值来实现:

h_\theta(x) \in [0, 1]

Predict 1 if h_\theta(x) \geq 0.9

Predict 0 if h_\theta(x) < 0.9

2【高召回率,低准确率】:假定我们用逻辑回归建立"贷款人是否有逾期倾向"的二分类模型,我们需要降低阈值来实现:

h_\theta(x) \in [0, 1]

Predict 1 if h_\theta(x) \geq 0.3

Predict 0 if h_\theta(x) < 0.3

一个更直观的例子:


AUC/ROC

ROC--深入浅出

一句话解释 :ROC(Receiver Operating Characteristic)曲线通过设置不同的临界值,来展示分类模型在不同临界值下的表现。

ROC 曲线图中:

ROC 曲线绘制原理

假设使用逻辑回归分类器进行预测,分类器会给出每个样本为正的概率,可规定一个阈值 x,概率大于 x 的为正样本,概率小于 x 的为负样本。若取多个不同概率作为阈值,则可以得到一系列(FPR, TPR),绘制出 ROC 曲线。

总结一下,可分成三步:

  1. 先按分数升序排序,计算某个阈值 x 下的 TPR 与 FPR;
  2. 重复步骤(1),在不同阈值 x 下计算得到多组 TPR 与 FPR;
  3. 以 FPR 为横轴,TPR 为纵轴,画出 ROC 曲线。

注:

步骤(1)中,概率低于 x 时预测为 Bad。

TPR = (预测为 Bad & 真实为 Bad)/整体真实为 Bad

FPR = (预测为 Bad & 真实为 Good)/整体真实为 Good

因此可将 TPR 理解为累积正样本率 Cum Bad Rate,FPR 理解为累积负样本率 Cum Good Rate。

样本分布与 ROC 曲线之间的关系:

ROC 曲线绘制例子

假设已经得出一系列样本被划分为正类的概率,然后按照大小排序,下图是一个示例,图中共有 20 个测试样本,“Class”一栏表示每个测试样本真正的标签(p 表示正样本,n 表示负样本),“Score”表示每个测试样本属于正样本的概率。

接下来,从高到低将“Score”值作为阈值 threshold,当测试样本属于正样本的概率大于或等于这个 threshold 时,我们认为它为正样本,否则为负样本。

举例来说,对于图中的第 4 个样本,其“Score”值为 0.6,那么样本 1,2,3,4 都被认为是正样本,其中样本 1,2,4 预测正确,则 TP=3;样本 5-20 被认为是负样本,其中样本 5,6,9,11,13,17,19 实际为正样本,则 FN=7,故 TPR=TP/(TP+FN)=3/(3+7)=0.3。

每次选取一个不同的 threshold,我们就可以得到一组 FPR 和 TPR,即 ROC 曲线上的一点。这样一来,我们一共得到了 20 组 FPR 和 TPR 的值,将它们画在 ROC 曲线的结果如下图:

AUC--深入浅出

一句话解释 :ROC 曲线与 FPR 轴围成的面积记作 AUC,AUC 越大,说明分类器的性能越好。

以下图为例:

  1. L2 曲线与 FPR 轴之间的面积 > L1 曲线与 FRP 轴之间的面积,故 L2 曲线对应的分类器性能优于 L1 曲线,即:曲线越靠近 A 点(左上方)性能越好,曲线越靠近 B 点(右下方)曲线性能越差;
  2. 若 ROC 曲线与 CD 对角线一致,说明算法性能和随机猜测的效果差不多,如 C、D、E 点。若 ROC 曲线位于 CD 对角线上面(即位于白色三角形内),说明算法性能优于随机猜测,如 G 点(0.2, 0.7)。若 ROC 曲线位于 CD 对角线下面(即位于灰色三角形内)说明算法性能比随机猜测差,如 F 点(0.8, 0.3)。

AUC 的缺陷

  1. 忽略了预测的概率值和模型的拟合优度;
  2. AUC 反应的信息过于笼统,无法反应实际业务中关心的指标,如:召回率、精确率等;
  3. AUC 对 FPR 和 TPR 两种错误的代价同等看待;
  4. AUC 没有给出模型误差的空间分布信息;
  5. 最重要的一点,AUC 的 misleading 的问题:可能存在两个模型的 AUC 相等,但其在不同区域的预测能力是不同的。

拓展阅读: AUC的缺陷 (原文: AUC: a misleading measure of the performance of predictive distribution models


KS

首先介绍一下什么是 KS-检验:

KS-检验(Kolmogorov-Smirnov text):KS-检验是比较一个频率分布 f(x)与理论分布 g(x)或者两个观测值分布的检验方法。其原假设 H0:两个数据分布一致或者数据符合理论分布。D=max| f(x)- g(x)|,当实际观测值 D>D(n,α)则拒绝H0,否则则接受H0假设。

一句话解释:KS(Kolmogrow-Smirnov)值是好样本与坏样本累计分布之间的差值

计算公式:

ks = max \{|cum(bad\_rate)-cum(good\_rate)|\}

在风控场景,上面的式子可以理解为:KS=max{|累计坏人占比-累计好人占比|}

举个例子,根据分数划分 20 个区间小组,针对各组分别统计如下指标:

首先 mock 出 Score、Count、Bad、Good 四列数据,然后计算出后面五列累计指标,最后由 Cum_Bad%和 Cum_Good%的绝对值计算出 KS_Value,计算细节如下:

其中,40-45 分数区间的 KS_Value 最大,达到了 30.17%,即该结果对应的模型 KS 为 30.17%.


5. PSI

一句话解释:PSI(Population Stability Index)指标反映了验证样本在各分数段的分布与建模样本分布的稳定性。在建模中,我们常用来筛选特征变量、评估模型稳定性。

计算公式:

PSI = SUM( (Actual% - Expected%)* ln(Actual%/ Expected%) )

Actual% -- 实际占比

Expected% -- 预期占比

从业务上来看,PSI 指标值越小,实际分布和预期分布之间的差异就越小,表示当前模型在业务上的表现越稳定。

PSI 指标的计算可分为以下步骤:

  1. 对预期(Expected)分数作离散化处理,一般分成 10 或 20 个区间,按升序/降序排列, 并统计各分箱的样本数占比(Expected%);
  2. 按上一步的分箱区间,对实际分数在各区间的样本占比(Actual%)进行统计;
  3. 按每个分箱,计算其 (Actual%-Expected%)和 ln(Actual%/ Expected%),然后计算 (Actual% - Expected%)* ln(Actual%/ Expected%),得到每个分箱的 Index;
  4. 将每个分箱(每行)的 Index 值相加,得到 PSI 指标。

老规矩 -- 举个栗子,具体的计算过程如下:

在大多数场景下,目前较通用的 PSI 评判标准阈值如下:


6. Lift 曲线

一句话解释:Lift 衡量的是评分模型对坏样本的预测能力相比随机选择的倍数,Lift 大于 1 说明模型表现优于随机选择。

Lift=\frac{\frac{TP}{TP+FP}}{\frac{P}{P+N}}

Lift 在风控场景一般用于贷前评分卡模型的效果评估,下面举个例子:算完 KS 的边角余料先不要丢掉,基于这些中间结果,再补充一列 Cum_total%,就可以针对每一行计算其 Lift 值了,即 Lift=Cum_bad%/Cum_total%,以 Cum_total%作为横轴,Lift 值作为纵轴,即可作出 Lift 曲线图,具体的中间计算过程和 Lift 曲线如下:

不过 Lift 指标更多用于营销场景。例如:若不使用营销模型,而是采用随机的营销方式,只有 1%的客户会成功转化;而使用模型进行精准营销后,会有 10%的客户成功转化。那么,lift=10%/1%=10。


7. Gain 曲线

Gain 曲线和 Lift 曲线可以放到一起对比来看:

一句话解释:Lift 曲线主要表现的是相较于不使用模型时,预测效果的提升指数,而 Gain 曲线表现的则是模型整体的精度。从计算公式上来看,可以说 Gain 是 Lift 的分子。

即  Gain=\frac{TP}{TP+FP}

如果要作图的话,接着用

标签:AUC,PSI,ROC,KS,Lift,样本,曲线,Cum
来源: https://blog.csdn.net/cyan_soul/article/details/122820556