分享

模型评估与评估指标(KS、AUC&Gini)

 天承办公室 2023-09-25

500页原创图文👉《pandas进阶宝典

目录

  1. 交叉验证

  2. 模型的泛化能力

    过拟合与欠拟合

3.标准评估指标

    准确率

    召回率(查全率)

    精确率(查准率、精准率)

    P-R曲线与BEP平衡点 

    F1指标

4.概率密度评估指标

    相对熵

5.概率分布评估指标

    Gini系数 

    ROC 

    AUC 

    KS值

交叉验证

模型的开发基于历史数据,而模型的使用则针对未来的数据。为了模拟这种建模方式,将数据集分为三部分:训练集、验证集和测试集。

  • 模型在训练集上的误差(即真实结果与预测结果间的差异)称为训练误差或经验误差;
  • 模型在验证集与测试集上的误差称为泛化误差。

而单个模型在训练集上训练希望训练误差最小,并在验证集上测试模型表现以确定单个模型的最优参数;当有多个候选模型时,需要在测试集上对比不同模型的测试表现,以选出最优的模型,一般将这个过程称为嵌套交叉验证

图片

嵌套交叉验证示意图

模型的表现如何量化是模型评估指标需要处理的问题,也称为性能度量

  • 在内层交叉验证中,不同的模型评估指标会决定单个模型的最优参数组合;
  • 在外层交叉验证中会决定多个模型中的最优模型交付使用

内层交叉验证用于模型参数优化;外层交叉验证用于模型选择,寻找最优模型

模型的泛化能力

我们把模型在未来数据上的预测能力称为泛化能力

模型训练误差(training error)与测试误差(test error)可以用来衡量模型的泛化能力。误差相差越小,泛化能力越强。

过拟合与欠拟合

模型训练完成后,不仅希望模型在训练集上表现优异(训练误差小),更希望模型在测试集上也具有较好的表现,模型在测试集上的表现称为模型的泛化能力。

  • 过拟合是指模型在训练集上的表现非常好,但在测试集上模型的表现较差,即模型在训练集上学了过多的规则,但规则并不是普适的规则,导致模型的外推能力或泛化能力下降。
  • 欠拟合与过拟合问题刚好相反,是指模型学习到较少的规则,在训练集上与测试集上的表现均不理想。
图片

图a为一条直线,显然学习到的规则过少,称为欠拟合(模型不能够在训练集上获得足够低的误差);图c采用了四阶的形式,可以完美地经过每一个样本,但是为了得到更小的误差而过分地拘泥于经验数据,称为过拟合(训练误差与测试误差太大);而图b虽然没有完美地穿过每个样本,但却是更加合理的模型。

构建模型时,需要可以控制模型复杂度来调整模型的泛化能力:

  1. 降低训练误差
  2. 缩小训练误差与测试误差的差距
图片

从特征工程的角度分析,图a相当于原始变量没有做特征工程,而图b和图c相当于添加了二阶特征与高阶特征。欠拟合问题是因为特征工程不充分,算法不能很好地学习到较好的规则。解决欠拟合问题,可以从特征工程的角度增加特征的多样性。而过拟合问题,由于进行了比较充分的特征工程,使得简单的模型也可以学习到过多的规则。这与特征工程要尽可能多地寻找特征并不冲突,此时可以通过加正则项的方式来防止过拟合。

对于上述3个模型,其基本形式为,因此对于a来说,,即二次项以上的权重为0(为截距项,与b代表的含义相同,这里只是为表示方便写成)。同理,对于图b是三次项以上的权重为0。可见,权重可以反映模型的复杂度。加正则项的办法是将权重作为损失函数的一部分一起进行参数优化。常用的正则项有L1正则、L2正则。

添加L1正则后的损失函数(MAE)表示为:


添加L2正则后的损失函数(MSE)表示为:


其中,n为样本数,d为属性或特征数。λ>0。第一部分就是原来的交叉熵损失即训练误差——表征在训练集的所有样本的平均损失;第二部分为正则项即结构风险——限制模型的复杂度,以保证模型不要太复杂而出现过拟合问题。

标准评估指标

评分卡模型常用的逻辑回归模型,对于每一个入模样本,使用评分卡模型预测其PD (probability of default 违约概率)值。设定一个切分阈值(Cutoff)后,当PD高于Cutoff,则预测y=1,否则,预测y=0,从而实现分类。

在申请评分中更关心模型对坏样本的准确预测能力;而在反欺诈应用中,更关心模型预测的欺诈用户中有多少是真实欺诈的用户。常用混淆矩阵计算召回率(Recall)和精准率(Precision)等指标。混淆矩阵是定义单点指标的基础,对于给定的Cutoff,从混淆矩阵中可以计算评价指标集的多个技术指标。

以少数样本即坏样本为正样本计算模型的预测输出,得到的混淆矩阵如下表:

图片

分类结果混淆矩阵

True Positive(真正,TP)被模型预测为正的正样本;

False Positive(假正,FP)被模型预测为正的负样本;

True Negative(真负,TN)被模型预测为负的负样本;

False Negative(假负,FN)被模型预测为负的正样本;

真正、真负为预测正确的类别,假正、假负为预测错误的类别。

图片
评估指标汇总

上述指标中,混淆矩阵和单点指标是在给定某个Cutoff阈值时计算出的指标,这些指标是相对于给定的Cutoff阈值而言的。ROC曲线、PR曲线、Lift曲线等则是连续变化后形成的轨迹曲线。AUC和Gini区域指标则是对应曲线下的面积。

准确率

预测正确的正负样本数和总样本数的比值


召回率(查全率)

召回率衡量了在所有正例中模型正确预测的概率,召回率与漏报率相对,即召回率越高,漏报率越小。

精确率(查准率、精准率)

精准率衡量了所有模型预测为正例的样本中真实为正例的概率,精准率与误报率相对,即精准率越高,误报率越少。

召回率(查全率)是从真实结果的角度评判,精准率(查准率)是从模型预测的角度来评判

对于同一模型,不同的阈值设定会得到不同的预测类别,召回率与精准率是一对相互制约、此消彼长的指标,实际应用中往往会牺牲某一指标来提高另一指标。针对不同的业务场景,设定不同的阈值。如可容忍30%的误报率即精准率为70%的前提下,最大可能地提高召回率即降低漏报率,提高拒绝坏用户的能力。又如在某病毒检测中不希望漏掉任何一个阳性患者,这种情况下,就要追求很高的召回率。但在商品推荐时,为了尽可能少地打扰客户,希望推荐的内容是客户感兴趣的,这时就要追求高精确率。

P-R曲线与BEP平衡点

为了综合考虑召回率与精准率,以召回率为横坐标、精准率为纵坐标,绘制P-R曲线来比较模型的优劣。若一个学习器的 P-R 曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者,如下图学习器 A 的性能优于学习器 C;如果两个学习器的 P-R 曲线发生了交叉,如图中的A与 B,则难以一般性地断言两者孰优孰劣,这时P-R曲线可以通过曲线与坐标轴围成的面积来比较模型性能的优劣,同时也可以采用平衡点(Break Even Point,BEP)来衡量,令每个分类模型的召回率与精准率相等即为该模型的BEP,BEP越大,则模型的性能越好,P-R曲线如下图所示:

图片
P-R曲线与平衡点示意图

F1指标

但是P-R曲线要绘图来进行比较,BEP方法是P-R曲线的一种量化方法。而更好的量化方法是F1指标,F1指标可以更方便地完成模型的性能度量。F1指标计算公式如下:


Fl 是基于查准率与查全率的调和平均值(harinonicmean)定义的: ,参考周志华老师《机器学习》,下同

F1指标综合考虑了召回率与精准率两种情况,如果希望考虑更多的召回率或精准率,则有如下的变异形式,即 指标:


  •  = 1时,指标蜕化为F1指标,此时召回率与精准率的重要程度相同;
  • >1时,召回率的影响大于精准率;
  • <1时,精准率的影响大于召回率。

可见,标准评估指标的本质是从模型预测结果出发来度量模型性能优劣的,如分类模型从混淆矩阵中得到各种不同的性能指标,回归模型直接从预测结果与真实结果的偏差角度进行分析。接下来要介绍的指标主要是分类模型的度量指标,并且从概率的角度度量模型的性能。

概率密度评估指标

以二分类为例,模型经过sigmoid函数将概率值转化为分类指标,即概率大于0.5被判断为正例,小于0.5被判为负例。得到模型预测正负样本的概率密度曲线(以坏样本为正样本),如下图所示:

图片
    实线表示负样本(好样本)的概率密度曲线,虚线表示正样本(坏样本)的概率密度曲线。理想状态模型可以完美地将正负样本分离,此时的两条概率密度曲线没有重合部分,即两条概率密度函数是相互独立的。因此,基于概率密度的评估指标其本质就是度量两个概率密度函数相互独立的可能性有多大。明显下图中第一个分类器的性能优于第二个分类器的性能(重叠部分少,更好的区分能力)。
图片

上面以绘图基于概率密度度量模型性能,接下来考虑量化指标的实现方式。

  • 信息熵

    概率是表征随机变量确定性的度量;信息是随机变量不确定性的度量,熵是不确定性度量的平均值,即为信息的平均值。熵的本质是香农信息量log(1/p)。s记一个随机变量x的概率分布为P(x),则信息熵公式:


关于信息熵公式。h(x,y) = h(x) + h(y),由于x,y是俩个不相关的事件,满足p(x,y) = p(x)*p(y).根据上面推导,h(x)一定与p(x)的对数有关(因为对数形式的真数相乘之后,对应对数的相加形式)。因此信息量公式如下:信息量取概率的负对数,其实是因为信息量的定义是概率的倒数的对数。而用概率的倒数,是为了使概率越大,信息量越小,同时因为概率的倒数大于1,其对数自然大于0了。

常见的熵如下表所示。图片

黑色部分为未知的部分,而白色部分为已知的部分。即H(X)熵表征了随机变量X的不确定性的度量,是所有可能发生的事件产生的信息量的期望。即信息量的期望。在信息论中,熵表示随机变量X的最小编码长度。

  • 条件熵

条件熵H(Y|X)表示已知随机变量X的条件下随机变量Y的不确定性。条件熵H(Y|X)定义为给定X的条件下Y的条件概率分布的熵对X的数学期望:

图片

  • 互信息

也称为信息增益,用于衡量两个变量的相关程度,也是ID3决策树训练阶段特征选择采用的衡量指标(参考风控中的决策树模型)。随机变量X与Y的互信息、信息熵、条件熵的关系如下:


  • 交叉熵是Logistic回归或神经网络乃至深度学习模型中的损失函数。假设已知随机变量的真实分布为p,预测分布为q,交叉熵度量了从q到p还需要的信息量,是性质非常好的损失函数。


相对熵

也称为K-L散度(Kullback–Leibler divergence),K-L散度是两个随机分布之间距离的度量,就是似然比的对数期望,这正是要找的衡量两个概率密度函数独立性的指标。

在信息论中,相对上等价于两个概率分布的信息熵的差值,若其中一个概率分布为真实分布,另一个是预期分布,则相对熵等于交叉熵与真实分布的信息熵之差,表示使用逾期分布拟合真实分布时产生的信息损耗。


而K-L散度没有对称性,即D(p||q)≠D(q||p)。既然K-L散度没有对称性,两个随机分布之间的K-L散度求和,这个求和后的距离越大,证明两个随机分布的距离越大,即独立性越好,模型的预测效果越好。


得到了一个具有对称性的距离,即为K-L距离。如果我们将上述的两个随机分布换为模型预测后得到的正负样本的概率密度函数f(p|B)与f(p|G),就得到下列公式:


将上式写成离散形式,即连续变量分箱后的形式为


对称化后的K-L散度即K-L距离就是IV(Information Value)值。这就是在变量选择时,IV值大的变量对目标变量的预测能力更好。因为IV值其本质就是K-L距离,在每个区间的IV值越大,表示在这个区间内正负样本的概率密度函数f(p|B)与f(p|G)的距离就越大,在该区间内变量对好坏样本的区分度就越高,整个变量的IV值就是每个区间的IV值加和。而在模型评估中,同样可以计算IV值来度量模型性能。

因此,在变量选择阶段,IV值可以用来选择预测能力强的变量,在模型评估中可以用来衡量不同模型的预测性能。

概率分布评估指标

将概率密度函数做积分,就得到了概率分布函数,因此模型的性能度量也可以从概率分布角度入手。图片

将混淆矩阵与正负样本的概率密度函数f(p|B)与f(p|G)相对应得到下图,假设概率大于等于0.5为正样本,坏样本其概率密度函数表示为f(p|B);反之,概率小于0.5为负样本,好样本其概率密度分布表示为f(p|G)。

图片

希望得到正确预测与错误预测的比率,需要真正率TPR和假正率FPR两个概念的定义:

  • 真正率TPR:预测为正例且实际为正例的样本占所有正例样本(真实结果为正样本)的比例。
  • 假正率FPR:预测为正例但实际为负例的样本占所有负例样本(真实结果为负样本)的比例。

TPR和FPR与概率分布相对,其表示的是以某概率值为cutoff得到的面积与整个面积的比。

  • 洛伦兹曲线

以坏样本为正样本,假设样本总体为10,000,实际违约率为7%,即实际违约的样本为700个。构建评分卡模型,给出预测正样本的概率输出。将概率降序排列(概率越大逾期的可能性越高),然后将概率等分为10组,分别计算每组的实际违约数、占总违约数的占比,累计占比,计算结果如表所示。图片

坏样本占比的计算公式为组内实际的坏样本数比坏样本总数,累计占比为坏样本占比的累加结果。将采用模型判断得到的每组坏样本占比与随机判断每组的坏样本占比绘图得到提升图,如图:图片

将采用模型判断得到的每组累计坏样本占比与随机判断每组的累计坏样本占比进行绘图,就得到洛伦兹图,即:图片

两个不同模型的洛伦兹图的比较如下图所示,由于洛伦兹图横坐标可以表示通过率,如以4组的虚线位置为cutoff,则1到4组作为拒绝的样本,将5到10组作为通过的样本,此时通过率为60%,对应的cutoff=0.6,即模型预测概率大于等于0.6的样本都拒绝授信,只将概率小于0.6的样本作为准入样本。比较模型1和模型2的性能,在通过率为60%的情况下,模型1可以识别出89%的坏样本,而模型2只能识别出79%的坏样本。对于模型1来说意味着只有11%的漏报率,即将11%的坏样本作为好样本给予授信。注意这个11%并不是坏账率,坏账率是所有准入样本中出现违约的样本与总数的比,因此还要加上好样本中发生违约的样本。

图片

从洛伦兹曲线中可以知道越接近左上坐标轴,模型的性能越好(参考《机器学习》配套书籍),对角线(随机判断)的左上方的总面积就是模型可提升的全部空间,因此可用洛伦兹曲线与随机判断对角线围成的面积A来量化模型的性能,如下图所示。理想状态A的面积等于A+B的和,此时可以完美地识别所有坏样本;如果A的面积为0,此时为随机判断方法。

图片

Gini系数

上图中将可提升的面积与提升的极限做比值定义为基尼系数即:,因此,基尼系数的取值范围是[ 0 , 1 ]。

令上图中的矩形面积为1,那么A+B的面积为0.5。AUC = C+A,因此,G=2AUC-1 = (AUC-0.5)*2。基尼系数其实是随机从坏人中抽取一个人的分数小于随机从好人中抽取一个人分数的概率。需要注意的是基尼系数和AR(Accuracy Ratio)是等价的,其计算公式都可以由2AUC-1得到。

ROC

参考上述洛伦兹曲线,以真正率TPR为纵坐标,以假正率FPR为横坐标绘制的曲线就是ROC曲线,全称为受试者工作特征(Receiver Operating Characteristic)曲线。把概率降序排列,可以将概率由1到0分成10等份,以每个概率作为cutoff切分点计算所有样本的TPR和FPR,依次计算得到的值绘制为曲线即可。ROC曲线如图:

图片

ROC曲线中的坐标(0,0)表示以概率为1作为cutoff(PD≥1为坏样本)时模型的预测情况,此时模型将所有的样本都预测为负样本即在混淆矩阵中TP=FP=0,所以TPR=FPR=0;

坐标(1,1)表示以概率为0作为cutoff(PD≥0为坏样本)时模型的预测情况,此时模型将所有的样本都预测为正样本即在混淆矩阵中FN=TN=0,所以TPR=FPR=1。

ROC曲线的本质反映了舍弃一定数量的好用户可以避免多少坏用户之间的相互关系,模型可以通过设定一个概率阈值点,使得大于该概率阈值的样本均为正样本即坏样本,小于该概率阈值的样本均为负样本即好样本。ROC曲线由A点经过B点到达C点,表示在舍弃0%的好用户的前提下,可以100%地拒绝坏用户,即没有坏用户被准入。而图中的虚线表示,在舍弃50%的好用户的前提下,可以避免50%的坏用户,此时错杀了一半的好用户,并且有一半的坏用户没有识别出来。

AUC

ROC曲线应该在虚线的左上部且越靠近B点时模型的表现越好。ROC曲线的量化表示为AUC(曲线下边的区域)(Area under the curve,简称AUC),即ROC曲线与坐标轴围成的面积,面积越大表示模型的性能越好。很明显对角线AC是一种随机模型方法,即不加任何策略随机判断样本的类别,其AUC的值为0.5。因此AUC的取值范围为[0.5,1),AUC的值越大越好。更常用前述基尼系数或基尼统计量G = 2×AUC -1。这里的基尼系数和决策树的基尼系数是不同的,只是名称类似不要混淆。基尼系数是AUC的归一化形式。一般AUC大于0.75模型的效果表现较好,对应G=0.5。

ROC曲线的绘制需要选择不同的cutoff概率切分点以确定TPR和FPR,我们依然希望一个可量化的指标来指导cutoff的优化,这个量化指标就是KS值,多个KS值就得到了K-S曲线。

KS值

洛伦兹曲线中在给定通过率后,只能得到模型对坏样本的识别能力,并没有反应对好样本的识别能力,K-S曲线对上述问题做了补充。K-S曲线的本质就是坏样本的洛伦兹曲线和好样本的洛伦兹曲线构成的,其具体的计算过程与洛伦兹曲线一致,K-S曲线如下图:

图片

洛伦兹曲线逾期样本的累积占比曲线就是TPR。不逾期样本的累积占比曲线就是FPR。在K-S曲线中可以看出,横坐标的概率分组其实就是ROC曲线中给定不同的cutoff切分点,K-S曲线正是给出了在不同的概率分组下或者理解为不同的cutoff下模型对逾期样本与不逾期样本的识别能力。给出一种衡量最优cutoff的方法—KS值,其计算方法如下:

                   KS = max|累计坏人比-累计好人比|

KS距离用双箭头表示,在对应的临界概率分组下,两个累计分布函数的距离。

简单示例:图片

图片

KS值反应了模型对好坏样本的区分能力,KS值越大表示对好坏样本的区分能力越强,最大的KS值对应的概率即为预测模型的最优cutoff点。上图在双箭头处代表的含义为:在通过率为50%(概率0.5)的情况下,模型能够识别83%的逾期样本,但有30%的好样本被误判为逾期样本而拒绝授信,此时的KS值为53%。K-S曲线通常是在模型预测全体样本的概率结果后,通过比较全体样本的违约与不违约的差异值来衡量模型性能的,其量化指标为KS值,KS值越大说明模型对好坏样本的区分能力越好,模型的性能越优。但是模型KS很少能达到53%,因此需要检验模型是否发生过拟合,或者数据信息泄漏。

图片

相对于KS,AUC更加稳健,相对于准确率、召回率和F1等指标,AUC的优势在于不需要设定分类阈值,只需关注预测概率的排序。

图片

从某个角度上来讲ROC曲线和KS曲线是一回事,只是横纵坐标的取法不同而已。以逻辑回归为例,模型训练完成之后每个样本都会得到一个类概率值(注意是类似的类),把样本按这个类概率值排序后分成10等份,每份单独计算它的真正率和假正率,然后计算累计概率值,用真正率和假正率的累计做为坐标画出来的就是ROC曲线,用10等分做为横坐标,用真正率和假正率的累计值分别做为纵坐标就得到两个曲线,这就是KS曲线。AUC值就是ROC曲线下放的面积值,而ks值就是ks曲线中两条曲线之间的最大间隔距离。由于ks值能找出模型中差异最大的一个分段,因此适合用于cut_off,像评分卡这种就很适合用ks值来评估。但是ks值只能反映出哪个分段是区分最大的,而不能总体反映出所有分段的效果,AUC值更能胜任。

本篇介绍了几种评估指标,此外还有筛选变量的信息值(IV)、对比区间与整体bad_rate或不同策略效果的提升度(lift)等指标,以后会单独介绍。

参考:

《机器学习》 周志华老师

《信用评分工具》林·托马斯等

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多