分类问题评价指标

目录

模型评估方式

1.验证(Hold-Out)

2.交叉验证(Cross-Validation)

二分类问题

1.混淆矩阵(Confuse Matrix)

2.准确率(Accuracy)

3.精确率(Precision)

4.召回率(Recall)

5.F1-Score

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

平衡点(BEP)

7.ROC曲线

8.AUC(Area under ROC Curve)

9.对数损失(Log Loss)

10.KS图(Kolomogorov Smirnov chart)

11.增益图和提升图(Gain and Lift charts)

12.马修斯相关系数(MCC)

多分类问题

1.混淆矩阵

2.对数损失


模型评估方式

1.验证(Hold-Out)

使用这种方法时,通常大的数据集会被随机分成三个子集:

训练集:用于构建预测模型。

验证集:用于评估训练阶段所得模型的性能。它为模型参数优化和选择最优模型提供了测试平台。不是所有模型算法都需要验证集。

测试集:用之前未训练的样本评估模型的预测性能。如果模型与训练集拟合的好于测试集,有可能是过拟合所致。

2.交叉验证(Cross-Validation)

当仅有有限数量的数据时,为了对模型性能进行无偏估计,我们可以使用 k 折交叉验证(k-fold cross-validation)。 使用这种方法时,数据被分成 k 份数目相等的子集;构建k次模型,每次留一个子集做测试集,其他用作训练集。如果 k 等于样本大小,这也被称之为留一验证(leave-one-out)。

二分类问题

1.混淆矩阵(Confuse Matrix)

混淆矩阵是机器学习中总结分类模型预测结果的情形分析表,以矩阵形式将数据集中的记录按照真实的类别与分类模型作出的分类判断两个标准进行汇总。

预测正例 预测负例
实际正例

TP (True Positive)

被模型预测为正的正样本

FN (False Negative)

被模型预测为负的正样本

实际负例

FP (False Positive)

被模型预测为正的负样本

TN (True Negative)

被模型预测为负的负样本

T (True) 和 F(False) 评价模型的判断结果是否正确;

P (Positive) 和 N(Negative) 代表模型的判断结果分类器预测的结果。

假正例率(FPR)/ 误诊率( = 1 - 特异度):代表分类器预测的正类中实际负实例占所有负实例的比例。意为有多少负例被错判成了正例。
FPR=\frac{FP}{FP+TN}

真负例率(TNR)/ 特异度(Specificity):代表分类器预测的负类中负实例占所有负实例的比例,TNR=1-FPR。衡量的是所有的负例中有多少是被正确分类了,由于类别不平衡问题中通常关注正例能否正确被识别,Specificity高则FP低,意味着很少将负例错判为正例,即该分类器对正例的判别具有“特异性”,在预测为正例的样本中很少有负例混入。
TNR=\frac{TN}{FP+TN}

假负例率(FNR)/ 漏诊率 (= 1 - 灵敏度):意为有多少正例被错判成了负例。
FNR=\frac{FN}{TP+FN}

阳性似然比 = 真正例率 / 假正例率 = 灵敏度 / (1 - 特异度)

阴性似然比 = 假负例率 / 真负例率 = (1 - 灵敏度)/ 特异度

Youden指数 = 灵敏度 + 特异度 - 1 = 真正例率 - 假正例率

2.准确率(Accuracy)

准确率=预测正确的样本数/所有样本数,即预测正确的样本比例(包括预测正确的正样本和预测正确的负样本)。

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

Accuracy 能够清晰的判断模型的表现,但有一个严重的缺陷:在正负样本不均衡的情况下,占比大的类别往往会成为影响 Accuracy 的最主要因素,此时的 Accuracy 并不能很好的反映模型的整体情况。

Error=\frac{TN+FP}{TP+FP+TN+FN}=1-Accuracy

3.精确率(Precision)

精确率 / 查准率衡量的是所有被预测为正例的样本中有多少是真正例,是针对预测结果而言的一个评价指标。

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

4.召回率(Recall)

真正例率(TPR)/灵敏度(Sensitivity)/召回率(Recall)/查全率衡量的是所有的正例中有多少是被正确分类了,也可以看作是为了避免假负例(FN)的发生。是针对原始样本而言的一个评价指标。

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

精确率高,意味着分类器要尽量在 “更有把握” 的情况下才将样本预测为正样本, 这意味着精确率能够很好的体现模型对于负样本的区分能力,精确率越高,则模型对负样本区分能力越强。

召回率高,意味着分类器尽可能将有可能为正样本的样本预测为正样本,这意味着召回率能够很好的体现模型对于正样本的区分能力,召回率越高,则模型对正样本的区分能力越强。

精确率与召回率是此消彼长的关系, 如果分类器只把可能性大的样本预测为正样本,那么会漏掉很多可能性相对不大但依旧满足的正样本,从而导致召回率降低。

5.F1-Score

能够很好的评估模型,其主要用于二分类问题。针对精准率和召回率都有其自己的缺点;如果阈值较高,那么精准率会高,但是会漏掉很多数据;如果阈值较低,召回率高,但是预测的会很不准确。本质上是一种调和平均数与算术平均和几何平均相比,调和平均更注重小值

F1=\frac{2*Percision*Recall}{Percision+Recall}

可自定义对精确率/召回率不同的偏好:F_{\beta}=\frac{(1+{\beta}^{2})*Percision*Recall}{({\beta}^{2}*Percision)+Recall} 

  • \beta>0 度量了召回率对精确率的相对重要性。
  • \beta=1 时退化为标准F1;
  • \beta>1 时,召回率的权重比精确率高,即召回率有更大影响;
  • \beta<1 时精确率有更大影响。

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

当预测样本后(假设样本预测结果以 概率形式 输出),对样本结果进行排序,排在最前面(概率最大)的模型认为“最可能是”正例的样本,排在最后的是模型认为”最不可能“是正例的样本。按此顺序设置不同的阈值(阈值可以是排序后的概率值 / 固定划分点),在不同的阈值下,计算出当前阈值下的精确率P和召回率R。以精确率P为纵轴,召回率R为横作图,就可以得到P-R曲线。

分类问题评价指标_第1张图片

  • 在进行比较时,若一个学习期的P-R曲线被另一个学习器完全“包住”,则可以断言后者的性能优于前者。A、B均优于C
  • 如果两个学习器的P-R曲线发生了交叉,则难以一般性地断言两者优劣,只能在具体地P或者R下进行比较。A优于B

平衡点(BEP)

平衡点(Break-Even-Point)是“P=R”时的取值,基于BEP的比较,越大则越优。

7.ROC曲线

接收者操作特征曲线(receiver operating characteristic curve),是反映敏感度和特异度(= 1 - 误诊率)连续变量的综合指标,ROC曲线上每个点反映着对同一信号刺激的感受性。在ROC曲线以TPR为纵、以FPR为横轴作图,显示出一种正例与负例之间的“博弈”。尤其是评估不平衡数据

分类问题评价指标_第2张图片

通常只有有限个样本来绘制ROC图,此时无法产生图(a)中光滑的曲线,只能绘制出图(b)所示的近似曲线绘制过程:对样本预测结果进行排序,取第一个结果作为阈值,此时所有样本均预测为反例,此时真正例率和假正例率均为0,在坐标(0,0)处标记一个点;随后将第二个样本预测结果作为阈值,得到坐标点;依此类推。ROC曲线越靠拢(0,1)点,即越偏离45度对角线越好。

  • 当要比较两个学习器的性能优劣时,若一个学习器的ROC曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者。
  • 若两个学习器的ROC曲线发生交叉,则一般难以断言两者优劣。此时可以比较ROC曲线下的面积,即AUC值。

8.AUC(Area under ROC Curve)

从定义可知,AUC可以通过对ROC曲线下各部分的面积求和而得。假定ROC曲线是由坐标点\{(x_{1},y_{1}),(x_{2},y_{2}),\dots,(x_{n},y_{n})\}连接而成,则AUC可估算为
AUC=\frac{1}{2}\sum_{i=1}^{n-1}(x_{i+1}-x_{i})(y_{i}+y_{i+1})
形式上看,AUC考虑的是样本预测的排序质量,因此它与排序误差有关。由此AUC的含义是:随机挑选一个正样本(P)和一个负样本(N),模型对这两个样本进行预测得到每个样本属于正类的概率值,根据概值对样本进行排序后,正样本排在负样本前面的概率就是AUC值,越大越好。

AUC=\frac{\sum{I(P_\text{+},P_\text{-})}}{M+N}

I(P_{+},P_{-})=\begin{cases} 1 $ , $ P_{+}>P_{-}\\ 0.5 $ , $ P_{+}=P_{-}\\ 0 $ , $ P_{+}<P_{-} \end{cases}

其中,M 为正样本个数(即预测和实际一致),N 为负样本个数(即预测和实际不一致)。

  • AUC = 1: 完美分类器, 采用该模型,不管设定什么阈值都能得出完美预测(绝大多数时候不存在);
  • 0.5 < AUC < 1: 优于随机猜测,分类器好好设定阈值的话,有预测价值;
  • AUC = 0.5: 跟随机猜测一样,模型没有预测价值;
  • AUC < 0.5 :比随机猜测还差,但是如果反着预测,就优于随机猜测。

9.对数损失(Log Loss)

ROC和AUC是用于确定模型性能的预测概率,然而它们只考虑概率的顺序,没有考虑模型预测更可能为正样本的更高概率的能力(即考虑了大小,但没有考虑更高精度)。在这种情况下,可以使用对数损失,即每个实例的正例预测概率的对数的负平均值。

logloss=-\frac{1}{n}\sum_{i=1}^{n}(y_{i}log(\hat{y_{i}})+(1-y_{i})log(1-\hat{y_{i}}))
其中,n 为样本数,\hat{y_{i}} 为样本预测为1的概率,y\in[0,1]

logloss衡量的是预测概率分布和真实概率分布的差异性,取值越小越好。

10.KS图(Kolomogorov Smirnov chart)

K-S图测量分类模型的性能,通过衡量好坏样本累计分布之间的差值,评估模型的风险区分能力

KS=max(TPR-FPR)
是凹函数,存在极大值。取值范围 [0,1]。

和AUC一样,都是利用TPR、FPR两个指标来评价模型的整体训练效果。

不同之处在于,KS取的是TPR和FPR差值的最大值,能够找到一个最优的阈值;AUC只评价了模型的整体训练效果,并没有指出如何划分类别让预估的效果达到最好,就是没有找到好的切分阈值。

与PR曲线相比,AUC(ROC)和KS受样本不均衡的影响较小,而PR受其影响较大。

  • ks值<0.2,一般认为模型没有区分能力;

  • ks值\in[0.2,0.3],模型具有一定区分能力,勉强可以接受;

  • ks值\in[0.3,0.5],模型具有较强的区分能力;

  • ks值>0.75,往往表示模型有异常。

11.增益图和提升图(Gain and Lift charts)

增益图和提升图主要用于检验概率的排序,估计分类模型的性能。制作步骤:

  1. 计算每个样本的概率。
  2. 按递减顺序排列这些概率。
  3. 构建十分位数,每个组有近10%的样本数。
  4. 计算每个十分位处好(Responders)、坏(Non-responders)和总的响应率。

增益图:参考虚线表示斜率为 1 的线条,这是不使用模型的预期随机响应。大于 1 的增益表示预测模型的结果优于随机结果。

提升图:提升是增益百分比相对于预期随机结果的比率。参考虚线表示累积提升为 1,重合则意味着与随机结果相比没有增益。

累积增益图(Cumulative Gain chart)是反映了模型将 responders 与 non-responders 分离的程度。

12.马修斯相关系数(MCC)

综合考虑了 TP, TN, FP , FN, 是一个比较均衡的指标, 对于样本不均衡情况下也可以使用。MCC 本质上描述了预测结果与实际结果之间的相关系数。MCC的取值范围 [-1, 1]。

MCC=\frac{TP\times{TN}-TP\times{FN}}{\sqrt{(TP+FP)\times{(TP+FN)}\times{(TN+FP)}\times(TN+FN)}}

  • MCC= 1 表示预测与实际完全一致;
  • MCC= 0 表示预测的结果还不如随机预测的结果;
  • MCC=-1 表示预测结果与实际的结果完全不一致。

多分类问题

1.混淆矩阵

  • 宏观角度:赋予每个相同的权重
    1. 先在各个混淆军阵上分别计算出精确率和召回率,记为(P_{1},R_{1}),(P_{2},R_{2}),\dots,(P_{n},R_{n})
    2. 计算平均值得到“宏观精确率”(macro-P),“宏观召回率”(macro-R)、“宏观F1”(macro-F1)。
  • 微观角度:赋予每个样本相同的权重,考虑了不平衡问题
    1. 将各个混淆矩阵对应的元素进行平均,得到TP、FP、TN、FN的平均值;
    2. 基于这些平均值计算“微观精确度”(micro-P),“微观召回率”(micro-R)、“微观F1”(micro-F1)。

2.对数损失

logloss=-\frac{1}{N}\frac{1}{C}\sum_{i=1}^{N}\sum_{j=1}^{C}(y_{ij}log\hat{y_{ij}})
其中,N为样本数,C为类别数,y\in[0,1]

你可能感兴趣的:(评价指标,分类,机器学习,人工智能)