各位老师,大家好!在这个系列的上一篇文章中(点击查看详情)我们简要介绍了如何从区分度、校准度和临床效用这三个方面来评价模型优劣。从今天开始,我们将具体为大家讲解常用评价方法的原理,以及该如何解读分析结果。
模型评价的三个方面中,最重要的是区分度,它是进行其他评价的基础。其中最容易理解的就是混淆矩阵了。但不要小看这个简单的四格表,我们可以从中获得非常多的指标用于评价模型!以下是今天将要介绍的内容:
1 混淆矩阵的介绍
2 可通过混淆矩阵计算的指标
2.1 灵敏度与假阴性率
2.2 特异度与假阳性率
2.3 阳性预测值与错误发现率
2.4 阴性预测值与误漏率
2.5 准确率/符合率
2.6 F1分数
2.7 约登指数
3 文章实例
01 混淆矩阵
首先介绍定义,混淆矩阵就是以矩阵的形式将数据按照真实类别和分类模型预测的类别进行汇总,用来归纳分类模型预测结果的情况。
听起来是不是挺抽象的?那我们举个常见的例子:假设我们构建了一个分子诊断模型用于判断病人是否患口腔癌,我们的模型会对每一个人做出阳性或阴性的判断,但每个人实际是否患病是可以通过公认的诊断标准(例如组织活检)去确定的。那根据模型判断结果(阳性/阴性)和真实患病情况(患病/不患病)的病人数目可以画出下面的四格表,这个就是混淆矩阵啦!这里我们举的是最简单的二分类例子,混淆矩阵呈现为2x2的四格表,如果是多分类情况,混淆矩阵也可以相应呈现为多行和多列的表格。
图1 混淆矩阵四格表形式
还是回到二分类的混淆矩阵,为了便于后续分析,我们通常会用更简单的代号去表示各个分类:
图2 混淆矩阵一般形式
此图出自2016年发表于杂志Nature Methods的要点文章Classification evaluation,其中Predicted表示预测值,Actual表示真实值,“+”代表阳性/患病者,“-”代表阴性/未患病者,矩阵中四格的含义分别为:
TP:True Positive,真阳性,表示样本的真实类别为+,最后预测得到的结果也为+,即实际患病者中被模型判断为患病的人数;
FN:False Negative,假阴性,表示样本的真实类别为+,最后预测得到的结果为-,即实际患病者中被模型判断为未患病的人数,属于错误判断;
FP:False Positive,假阳性,表示样本的真实类别为-,最后预测得到的结果为+,即实际未患病者中被模型判断为患病的人数,也属于错误判断;
TN:True Negative,真阴性,表示样本的真实类别为-,最后预测得到的结果也为-,即实际未患病者中被模型判断为未患病的人数。
实际上图2只是上文提到的论文原图的一部分(红框框内),完整的图片如下图3所示,那周围的文字又是什么意思呢?
图3
别小看了混淆矩阵中这简简单单的四个数值,我们可以通过它们计算出很多的指标,从各个不同维度对模型进行评价,下面就听我仔仔细细地为大家解读他们的含义和计算方法吧!
02 可通过混淆矩阵计算的指标
根据混淆矩阵可计算多种评价指标,包括真实性、可靠性和预测值三个方面。
真实性,也称效度(Validity),指预测结果与实际结果的符合程度,包括图4中的公式①灵敏度/召回率/真阳性率;②假阴性率;③假阳性率;④特异度/真阴性率,和补充评价指标——约登指数;
预测值(Predictive value)也称诊断价值,是应用预测结果来估计实际患病和不患病可能性大小的指标,包括图4中的公式⑤阳性预测值;⑥误漏率;⑦错误发现率;⑧阴性预测值;
可靠性(Reliability),是指在相同条件下,用同一种检测方法重复检测同批或同一位受试者,结果之间的一致程度,这里用来表示预测结果和实际结果整体上的一致程度,包括图4的⑨准确率/符合率;
而公式⑩F1分数,兼顾真实性和预测值方面的评价指标。
图4
灵敏度(Sensitivity)指模型将实际患病的人正确判断为病人的百分率,也称敏感度/真阳性率/召回率,反映了模型发现病人的能力。
Sensitivity=TP/(TP+FN),见图4公式①
假阴性率(False negative rate)指将实际患病的人错误判断为非病人的百分率,也称漏诊率,它反映的是模型漏诊病人的情况。
False negative rate =FN/(TP+FN),见图4公式②
灵敏度与假阴性率求和为1,为互补关系。
2.2 特异度与假阳性率
特异度(Specificity)指模型将实际无病的人正确判断为非病人的百分率,也称真阴性率,反映了模型确定非病人的能力。
Specificity=TN/(FP+TN),见图4公式④
假阳性率(False positive rate)指模型将实际无病的人错误判断为病人的百分率,也称误诊率,反映了模型误诊病人的情况。
False positive rate=FP/(FP+TN),见图4公式③
特异度与假阳性率求和为1,为互补关系。
2.3 阳性预测值与错误发现率
阳性预测值(Positive predictive value),又称精确率(Precision),指模型预测的全部阳性例数中真正的患病者所占的比例,反映了模型预测结果阳性时,阳性者真正患病的概率有多大。
Positive predictive value=TP/(TP+FP),见图4公式⑤
错误发现率(False discovery rate)指模型预测的全部阳性例数中实际未患病者所占比例,反映了模型发现阳性者中未患病的情况。
False discovery rate=FP/(TP+FP),见图4公式⑦
阳性预测值与错误发现率求和为1,为互补关系。
2.4 阴性预测值与误漏率
阴性预测值(Negative predictive value),是模型预测的全部阴性例数中真正的未患病者所占的比例,反映了模型预测结果阴性时,阴性者真正未患病的概率有多大。
Negative predictive value=TN/(FN+TN),见图4公式⑧
误漏率(False omission rate)指模型预测的全部阴性例数中实际患病者所占比例,反映了模型发现阴性者中患病的情况。
False omission rate=FN/(FN+TN),见图4公式⑥
阴性预测值与误漏率求和为1,为互补关系。
2.5 准确率/符合率
准确率(Accuracy),又称符合率,是模型预测结果与实际情况相同的人数占整体样本的比例,反映了模型对整体样本判断正确的能力。
Accuracy=(TP+TN)/(TP+FN+FP+TN),见图4公式⑨
2.6 F1分数
F1分数(F1 score):阳性预测值与灵敏度分别表示模型的可靠性和真实性,但在两模型比较时两者有可能存在有冲突情况,就需要同时兼顾阳性预测值和灵敏度的指标,F1分数就是两者的调和平均数,值越大模型越好。
F1 score=2*(灵敏度*阳性预测值)/(灵敏度+阳性预测值)=2TP/(2TP+FP+FN),见图4公式⑩
2.7 约登指数
约登指数(Youden index):也称正确指数,假设模型灵敏度和特异度同样重要,即可应用约登指数,常用来判断最佳截断值。
Youden index=(灵敏度+特异度)-1
以上这些公式你是否都已经掌握了呢?这里我们把这些公式集合起来,大家再回顾一下吧!
图5 混淆矩阵指标公式集合
03 文章实例
混淆矩阵非常适合用于临床诊断和预后模型的评估,比如这篇于2023年发表在Health Inf Sci Syst杂志(IF=6)的文章“Development and validation of predictive model based on deep learning method for classification of dyslipidemia in Chinese medicine中”用机器学习方法建立了20个诊断模型,并用了混淆矩阵方式展示性能靠前的5个模型,通过比较区分度后开发出一个血脂异常类型痰瘀互阻的诊断模型model-11,最突出的诊断因素是舌质紫暗、脉滑、苔滑腻等。
图6 混淆矩阵案例一
再举一个例子,这篇于2022年发表于中文期刊《数据挖掘》杂志的文章《基于Smote-XGBoost算法的心脏病预测模型研究》中用心脏病患者数据预测是否发生不良心脑血管事件,通过混淆矩阵评估了五种分类器(随机森林RF、支持向量机SVM、朴素贝叶斯NB、逻辑回归LR和集成学习算法XGBoost)所建立的预测模型的预测性能,发现XGBoost模型的表现最好。
通过前面内容的学习,大家应该都清楚混淆矩阵的意义和用途了吧?下面给大家出个计算题检验一下学习成果:我们拿这篇文章中XGBoost混淆矩阵数据为例,请大家分别计算一下召回率,特异度和准确率。
图7 混淆矩阵案例二
下面公布答案:
计算可知XGBoost建模灵敏度、特异度和准确率分别为84.78%、87.60%和87.23%。你做对了吗?
混淆矩阵作为评估分类模型区分度最简单的方法,大家可一定要掌握呀!尤其是准确率和召回率的概念。那如果碰到三分类甚至多分类混淆矩阵呢,只要将多分类简化成分类正确和分类错误的二分类再处理就可以啦,大家感兴趣可以去试试看哦~
那么以上就是本期全部内容啦!下一期我们将为大家介绍模型评价中当之无愧的流量明星——ROC曲线,请大家关注“谱度众合”公众号,期待后续更新吧!
04 参考文献
[1]Lever, J., Krzywinski, M. & Altman, N. Classification evaluation. Nat Methods 13, 603–604 (2016).
[2]Liu J, Dan W, Liu X, et al. Development and validation of predictive model based on deep learning method for classification of dyslipidemia in Chinese medicine. Health Inf Sci Syst. 2023;11 (1):21.
[3]管锦寒, 杨健, 陈俊钰等. 基于Smote-XGBoost算法的心脏病预测模型研究[J]. 数据挖掘, 2022, 12(3): 220-234.