目录
模型评估方式
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.对数损失
使用这种方法时,通常大的数据集会被随机分成三个子集:
训练集
:用于构建预测模型。
验证集
:用于评估训练阶段所得模型的性能。它为模型参数优化和选择最优模型提供了测试平台。不是所有模型算法都需要验证集。
测试集
:用之前未训练的样本评估模型的预测性能。如果模型与训练集拟合的好于测试集,有可能是过拟合所致。
当仅有有限数量的数据时,为了对模型性能进行无偏估计,我们可以使用 k 折交叉验证(k-fold cross-validation)。 使用这种方法时,数据被分成 k 份数目相等的子集;构建k次模型,每次留一个子集做测试集,其他用作训练集。如果 k 等于样本大小,这也被称之为留一验证(leave-one-out)。
混淆矩阵是机器学习中总结分类模型预测结果的情形分析表,以矩阵形式将数据集中的记录按照真实的类别与分类模型作出的分类判断两个标准进行汇总。
预测正例 | 预测负例 | |
实际正例 | TP (True Positive) 被模型预测为正的正样本 |
FN (False Negative) 被模型预测为负的正样本 |
实际负例 | FP (False Positive) 被模型预测为正的负样本 |
TN (True Negative) 被模型预测为负的负样本 |
T (True) 和 F(False) 评价模型的判断结果是否正确;
P (Positive) 和 N(Negative) 代表模型的判断结果即分类器预测的结果。
假正例率(FPR)/ 误诊率( = 1 - 特异度):代表分类器预测的正类中实际负实例占所有负实例的比例。意为有多少负例被错判成了正例。
真负例率(TNR)/ 特异度(Specificity):代表分类器预测的负类中负实例占所有负实例的比例,TNR=1-FPR。衡量的是所有的负例中有多少是被正确分类了,由于类别不平衡问题中通常关注正例能否正确被识别,Specificity高则FP低,意味着很少将负例错判为正例,即该分类器对正例的判别具有“特异性”,在预测为正例的样本中很少有负例混入。
假负例率(FNR)/ 漏诊率 (= 1 - 灵敏度):意为有多少正例被错判成了负例。
阳性似然比 = 真正例率 / 假正例率 = 灵敏度 / (1 - 特异度)
阴性似然比 = 假负例率 / 真负例率 = (1 - 灵敏度)/ 特异度
Youden指数 = 灵敏度 + 特异度 - 1 = 真正例率 - 假正例率
准确率=预测正确的样本数/所有样本数,即预测正确的样本比例(包括预测正确的正样本和预测正确的负样本)。
Accuracy 能够清晰的判断模型的表现,但有一个严重的缺陷:在正负样本不均衡的情况下,占比大的类别往往会成为影响 Accuracy 的最主要因素,此时的 Accuracy 并不能很好的反映模型的整体情况。
精确率 / 查准率衡量的是所有被预测为正例的样本中有多少是真正例,是针对预测结果而言的一个评价指标。
真正例率(TPR)/灵敏度(Sensitivity)/召回率(Recall)/查全率衡量的是所有的正例中有多少是被正确分类了,也可以看作是为了避免假负例(FN)的发生。是针对原始样本而言的一个评价指标。
精确率高,意味着分类器要尽量在 “更有把握” 的情况下才将样本预测为正样本, 这意味着精确率能够很好的体现模型对于负样本的区分能力,精确率越高,则模型对负样本区分能力越强。
召回率高,意味着分类器尽可能将有可能为正样本的样本预测为正样本,这意味着召回率能够很好的体现模型对于正样本的区分能力,召回率越高,则模型对正样本的区分能力越强。
精确率与召回率是此消彼长的关系, 如果分类器只把可能性大的样本预测为正样本,那么会漏掉很多可能性相对不大但依旧满足的正样本,从而导致召回率降低。
能够很好的评估模型,其主要用于二分类问题。针对精准率和召回率都有其自己的缺点;如果阈值较高,那么精准率会高,但是会漏掉很多数据;如果阈值较低,召回率高,但是预测的会很不准确。本质上是一种调和平均数(与算术平均和几何平均相比,调和平均更注重小值)。
可自定义对精确率/召回率不同的偏好:
- 度量了召回率对精确率的相对重要性。
- 时退化为标准F1;
- 时,召回率的权重比精确率高,即召回率有更大影响;
- 时精确率有更大影响。
当预测样本后(假设样本预测结果以 概率形式 输出),对样本结果进行排序,排在最前面(概率最大)的模型认为“最可能是”正例的样本,排在最后的是模型认为”最不可能“是正例的样本。按此顺序设置不同的阈值(阈值可以是排序后的概率值 / 固定划分点),在不同的阈值下,计算出当前阈值下的精确率P和召回率R。以精确率P为纵轴,召回率R为横作图,就可以得到P-R曲线。
平衡点(BEP)
平衡点(Break-Even-Point)是“P=R”时的取值,基于BEP的比较,越大则越优。
接收者操作特征曲线(receiver operating characteristic curve),是反映敏感度和特异度(= 1 - 误诊率)连续变量的综合指标,ROC曲线上每个点反映着对同一信号刺激的感受性。在ROC曲线以TPR为纵、以FPR为横轴作图,显示出一种正例与负例之间的“博弈”。尤其是评估不平衡数据。
通常只有有限个样本来绘制ROC图,此时无法产生图(a)中光滑的曲线,只能绘制出图(b)所示的近似曲线。绘制过程:对样本预测结果进行排序,取第一个结果作为阈值,此时所有样本均预测为反例,此时真正例率和假正例率均为0,在坐标(0,0)处标记一个点;随后将第二个样本预测结果作为阈值,得到坐标点;依此类推。ROC曲线越靠拢(0,1)点,即越偏离45度对角线越好。
从定义可知,AUC可以通过对ROC曲线下各部分的面积求和而得。假定ROC曲线是由坐标点连接而成,则AUC可估算为
形式上看,AUC考虑的是样本预测的排序质量,因此它与排序误差有关。由此AUC的含义是:随机挑选一个正样本(P)和一个负样本(N),模型对这两个样本进行预测得到每个样本属于正类的概率值,根据概值对样本进行排序后,正样本排在负样本前面的概率就是AUC值,越大越好。
其中, 为正样本个数(即预测和实际一致), 为负样本个数(即预测和实际不一致)。
ROC和AUC是用于确定模型性能的预测概率,然而它们只考虑概率的顺序,没有考虑模型预测更可能为正样本的更高概率的能力(即考虑了大小,但没有考虑更高精度)。在这种情况下,可以使用对数损失,即每个实例的正例预测概率的对数的负平均值。
其中, 为样本数, 为样本预测为1的概率,。
logloss衡量的是预测概率分布和真实概率分布的差异性,取值越小越好。
K-S图测量分类模型的性能,通过衡量好坏样本累计分布之间的差值,评估模型的风险区分能力。
是凹函数,存在极大值。取值范围 [0,1]。
和AUC一样,都是利用TPR、FPR两个指标来评价模型的整体训练效果。
不同之处在于,KS取的是TPR和FPR差值的最大值,能够找到一个最优的阈值;AUC只评价了模型的整体训练效果,并没有指出如何划分类别让预估的效果达到最好,就是没有找到好的切分阈值。
与PR曲线相比,AUC(ROC)和KS受样本不均衡的影响较小,而PR受其影响较大。
ks值<0.2,一般认为模型没有区分能力;
ks值[0.2,0.3],模型具有一定区分能力,勉强可以接受;
ks值[0.3,0.5],模型具有较强的区分能力;
ks值>0.75,往往表示模型有异常。
增益图和提升图主要用于检验概率的排序,估计分类模型的性能。制作步骤:
增益图:参考虚线表示斜率为 1 的线条,这是不使用模型的预期随机响应。大于 1 的增益表示预测模型的结果优于随机结果。
提升图:提升是增益百分比相对于预期随机结果的比率。参考虚线表示累积提升为 1,重合则意味着与随机结果相比没有增益。
累积增益图(Cumulative Gain chart)是反映了模型将 responders 与 non-responders 分离的程度。
综合考虑了 TP, TN, FP , FN, 是一个比较均衡的指标, 对于样本不均衡情况下也可以使用。MCC 本质上描述了预测结果与实际结果之间的相关系数。MCC的取值范围 [-1, 1]。
其中,为样本数,为类别数,。