混淆矩阵
在机器学习中尤其是统计分类中,混淆矩阵(confusion matrix),也被称为错误矩阵(error matrix)。之所以叫做混淆矩阵,是因为能够很容易的看到机器学习有没有将样本的类别给混淆了。都是基于混淆矩阵的。混淆矩阵结构如下图。
矩阵的每一列表达了分类器对于样本的类别预测,矩阵的每一行则表达了版本所属的真实类别。每个元素名称都由两部分组成:1.真或假,2.正例或反例。真和假是预测结果是否正确,正例反例是预测的结果。可以看出,对角线的元素是预测正确的元素。
下面还是以前文锤哥的例子讲混淆矩阵。假设锤哥在鉴宝节目鉴别了100个瓷器。其中真品(正例)80个,赝品(反例)20个。锤哥大部分都看准了,但也有的看走了眼。错把3个赝品当成了真品,错把5个真品当成了赝品。这样锤哥鉴定结果为真品78个,其中75个是真真品,3个是假真品;赝品22个,其中17个是真赝品,5个是假赝品。画出混淆矩阵如下。
混淆矩阵用最简洁的性质准确刻画了分类器的优劣,是大多数分类器评估指标的基础,多数指标都是从混淆矩阵衍生出来的。
准确率/accuracy
从混淆矩阵看出,对角线是预测正确的样本数,反对角线是预测错误的样本数。将对角线元素加和得到所有预测正确的个数,除以总样本数就得到了准确率。公式:accuracy = (TP+TN) / (TP+TN+FP+FN)。
准确率是全部样本中预测正确的比例,没有将正例和反例分开考察。
锤哥的例子中,accuracy = (75 + 17) / 100 = 0.92。代表锤哥每做一个鉴定,有92%的概率鉴定对。
查准率/精确率/precision/P
查准率是预测为正例的样本中,实际为正例的占比。是锤哥所有鉴定中,鉴定对的比例。
公式:P = TP / (TP+FP)。是对预测正例的预测准确性的一种度量。
锤哥的例子中,R = 75 / (75 + 3) = 0.9615。代表如果锤哥如果鉴定为正品,有96.15%的概率也确实为正品。
查全率/召回率/recall/R
查全率是实际为正例的样本中,预测为正例的占比。是实际为正品中,被锤哥鉴定为正品的瓷器占比。
公式:R = TP / (TP+FN)。是对真实正例的预测覆盖面的一种度量。
锤哥的例子中,P = 75 / (75 + 5) = 0.9372。代表如果一个瓷器为正品,那有93.72%的概率被锤哥鉴定为正品。
灵敏度/真正例率/sensitivity/TPR
召回率的另一种叫法。公式:TPR = TP / (TP+FN)。
特异度/真反例率/specificity/TNR
特异度是实际为反例的样本中,预测为反例的占比。是实际为赝品的瓷器中,被锤哥鉴定为赝品的占比。
公式:TNR = TN / (FP+TN)。是对真实反例的预测覆盖面的一种度量。
锤哥的例子中,TNR = 17 / (3 + 17) = 0.85。代表如果锤哥将一个瓷器鉴定为赝品,这个瓷器有85%的概率确实为赝品。
误诊率/假正例率/FPR
误诊率是实际为反例的样本中,预测为正例的占比。是实际为赝品的瓷器中,被锤哥鉴定为正品的瓷器占比。
公式:FPR = 1 - TNR = FP / (FP+TN)。和TNR一样,是对真实反例的预测覆盖面的一种度量。
锤哥的例子中,FPR = 3 / (3 + 17) = 0.15。代表如果锤哥将一个瓷器鉴定为赝品,这个瓷器有15%的概率实际为正品。
漏诊率/假反例率/FNR
漏诊率是实际为正例的样本中,预测为反例的占比。是实际为正品的瓷器中,被锤哥鉴定为赝品的占比。
公式:FNR = 1 - TPR = TP / (TP+FN)。和TPR 一样,是对真实正例的预测覆盖面的一种度量。
锤哥的例子中,FNR = 3 / (75 + 3) = 0.0385。代表如果锤哥将一个瓷器鉴定为正品,这个瓷器有3.85%的概率实际为赝品。
总结
准确率是整体刻画预测准确性的指标。查准率和查全率是从正例预测角度的一对度量指标。灵敏度和特异度,漏诊率和误诊率是从预测覆盖面角度的一对度量指标。前五个指标,分子都是预测正确个数。后两个指标,分子都是预测错误的个数。
查准率和查全率是负相关的关系,一般此消彼长(P-R曲线图形)。要提升查准率,必然将条件设置的严格一些,以尽可能将反例排除,这就导致了部分正例也被排除,查全率下降;要提升查全率,必然将条件设置的宽松一些,以尽可能将正例包含,这就导致了部分反例也被包含,查准率下降。
真正例率和假正例率以正相关的关系,一般变化方向相同(ROC曲线图形)。要提升真正例率(查全率)必然将条件设置的宽松一些,以尽可能将正例包含,这就导致了部分反例也被包含,假正利率升高。真反例率和假反例率的关系相同。
了解更多欢迎关注我的公众号和专栏。
微信公众号:曲曲菜
知乎专栏:AI和金融模型
原创作品,未标明作者不得转载。