混淆矩阵是评估机器学习其模型准确性能的指标,但是混淆矩阵的概念的很模糊的,关于它的文献也非常少,而且其分析性质也尝尝被忽略。在本文中,我们系统地研究了混淆矩阵及其分析性质。 我们列举了混淆矩阵的16种可能的变体,并表明只有8种是合理的。 我们研究了混淆矩阵与其他两个性能指标之间的关系:操作工作特性曲线(ROC)和KolmogorovSmirnov统计量(KS)。通过KS可以获得最佳cutoff score。
要构建ROC曲线,对于每个cutoff score,x轴为False Positive Rate, FPR,指的是真实的Bad中被预测为Good的比例,y轴为True Positive Rate, TPR,指的是真实的Good中被预测为Good的比例。 通常,对角线y=x上方的ROC曲线越高,模型越好。 ROC曲线(AUC)下的面积(称为AUC统计量或c统计量)是ROC的定量度量。 AUC衡量模型的预测准确性。 AUC越大,模型越准确。 如图1所示,AUC是三角形,矩形和梯形的面积之和
KS是评估模型的另一重要手段。 KS是在所有分数中Good累积比例与Bad累积比例之间的最大差异。 它衡量模型将good与bad分开的预测能力。 KS统计量度了所有分数中good和bad累计百分比的最大差异值。
图2是典型KS图。 x轴表示cutoff score,y轴表示每种结果类别(Good和Bad)的累积比例。 最上面的曲线代表True Positive Rate, TPR,指的是真实的Good中被预测为Good的比例,而底部曲线表示False Positive Rate, FPR,指的是真实的Bad中被预测为Good的比例。 KS是该系统的两条曲线之间的最大垂直距离。 两条曲线之间的距离越远,Good和Bad的分离程度就越大,因此模型越好。
混淆矩阵是机器学习中的一个基本术语,用于机器学习中,通过将预测值与实际值进行比较来衡量模型的准确性。
在本文中,我们第一次系统地研究了混淆矩阵及其分析特性。 本文的其余部分组织如下。 在第2节中,我们列举了混淆矩阵的16种可能变体,并表明只有8种是合理的。 在第3节中,我们首先研究预测精度测量的属性。 然后,我们研究了8个合理的混淆矩阵的4种总和测度的不变性。 接下来,研究了混淆矩阵与ROC之间的关系,以及混淆矩阵与KS之间的关系。最后,我们证明了KS可以达到混淆矩阵的最佳cutoff score。本文的结论在第4节中。
在整篇文章中,我们考虑一个具有二元因变量y的N个观察值(也称为记录或科目)的样本:我们假设该样本具有 n B n_B nB个Bad(y=1)和 n G n_G nG个Good(y=0),因此 n B + n G = N n_B+n_G=N nB+nG=N:我们还假设此样本已通过模型评分,并且具有m个不同的cutoff scoreS 1
2.混淆矩阵
假设S是cutoff score (相当于把预测结果划分为好坏的阈值)。 让我们首先定义一个预测的好结果与坏结果。 为了方便起见,我们仅将实际的好结果或坏结果称为Good或Bad。
定义2.1 如果样本的分数大于S,则该样本预测为Good。
定义2.2 如果一个样本的得分小于或等于S,那么这个样本就是一个Bad。
将预测的Good与Bad与实际的Good与Bad结合起来,我们准备定义混淆矩阵
定义2.3。 混淆(或分类错误)矩阵是一个双向频率表 C = ( c i j ) 2 × 2 C=(c_{ij})_{2\times 2} C=(cij)2×2,具有两个变量“实际”(Good或Bad)和“预测”(Good或Bad)。 4个元素的值 c 11 ; c 12 ; c 21 ; c 22 c_{11}; c _{12}; c _{21}; c _{22} c11;c12;c21;c22被称为True Negative (TN),True Positive (TP), False Negative (FN) and False Positive (FP),不一定按顺序。
给定cutoff score,可以唯一确定双向频率表的4个值。 让我们用 n g g , n g b , n b g , n b b n_{gg},n_{gb},n_{bg},n_{bb} ngg,ngb,nbg,nbb;表示这四个值; 其中第一个下标代表实际状态g(Good)或b(Bad),第二个下标代表预测状态g(Good)或b(Bad)。
故有
但是,混淆矩阵的概念令人困惑。 它涉及4对二元概念:Good or Bad, Positive or Negative, True or False, Actual or Predicted.。 它取决于Actual or Predicted的位置: 水平或者垂直。 这也取决于2×2表中Good and Bad的位置:Good before Bad or Bad before Good。
有些研究使“Actual”放在horizontal 而“Predicted“放在”vertical“”。 其他人则将“Actual“放在”vertical”和“Predicted”放在”horizontal ”。 有些人明确或隐式地将Good定义为Negative,将Bad定义为Positive;另一些人则隐式将Good定义为Positive,Bad定义为Negative。 有些人甚至根本没有提到Positive或Negative。
事实上,这只是一个思考的问题。例如,如果你认为“Good”是“Negative”,那么“Bad”就是“Positive”。相反,如果你认为“Good“”是“Positive”,那么“Bad”就是“Negative”。一旦确定了“Positive”和“Negative”,混淆矩阵就很容易确定:
True Negative 是正确分类为negatives的(实际)negatives的数目。
False Negative是指被错误分类为negatives的(实际)positives的数量。
True Positive 是正确分类为positives的(实际)positives的数量。
False Positive是指被错误分类为positives的(实际)negatives的数量。
从语言学的观点来看,我们可以把False解释为“not actual”。接下来,我们将列举混淆矩阵的所有变体。
混淆矩阵将取决于以下5个条件:
(1)行中Good是否在Bad之前
(2)列中Good是否在Bad之前
(3)Actual和Predicted是水平放置还是垂直放置的;
(4)Good和Bad是被定义为positives还是negatives
(5)哪个非对角元素为False Positive或False Negative。
总共有2×2×2×2×2=32可能的混淆矩阵变种。一旦条件(1)和(2)被确定,4个元素的值为 c 11 ; c 12 ; c 21 ; c 22 c_{11};c_{12};c_{21};c_{22} c11;c12;c21;c22是确定的。那么,谁是True Positive,谁是True
Negative,谁是False Positive,谁是False Negative,就是一个问题了。
在可能的32个变种中,我们可以通过将条件(1)和条件(2)合并为一个来减少到16个可能的变量,如果我们让Good和Bad在行和列中有相同的顺序:
(1)行与列中,Good是否在Bad之前
(2)Actual和Predicted是水平放置还是垂直放置的;
(3)Good和Bad是被定义为positives还是negatives
(4)哪个非对角元素为False Positive或False Negative。
让我们首先假设在混乱矩阵中的行和列中Good放在Bad之前。在这种情况下,2个“True”的情况总是在主对角线上,2个“False”的情况在非主对角线上。
(I) 变种1
这种变种具有以下条件:
Good是Negatives的,Bad是Positives的
False Positive是 c 21 c_{21} c21,False Negative是 c 12 c_{12} c12。
混淆矩阵如表1所示。在这种情况下,False Positive的意思是“not actual bad”。由于元素 c 21 c_{21} c21表示actual good but predicted bad,,所以它“not actual
bad”。因此, c 21 c_{21} c21的False Positive是有意义的。类似地,Negative c 12 c_{12} c12也有意义
(II) 变种2
这种变种是由变种1通过交换非主对角元素而产生的
Good是Negatives的,Bad是Positives的
False Negative是 c 21 c_{21} c21,False Positive是 c 12 c_{12} c12。
混淆矩阵如表2所示,在这种情况下,False Negative意味着“not actual good”,因为元素 c 21 c_{21} c21表示实际上是好的但是预测是坏的,它是“not actual bad“,因此,False Negative 作为 c 21 c_{21} c21是没有意义的。
(III) 变种3
变种3是由变种2通过交换主对角元素而得到的
Good是 Positive Bad是 Negative
False Negative 作为 c 21 c_{21} c21 and False Positive 作为 c 12 c_{12} c12
混淆矩阵如表3所示。在这种情况下,False Negative意味着“not actual bad”.由于元素 c 21 c_{21} c21表示实际是好但预测是坏,是“not actual bad”。因此,False Negative 作为 c 21 c_{21} c21是有意义的,类似的,False Positive作为 c 12 c_{12} c12也是有意义的。
(IV) 变种4
变种4由变种3通过交换非对角元素产生:
Good是 Positive Bad是 Negative
False Positive作为 c 21 c_{21} c21 and False Negative 作为 c 12 c_{12} c12
混淆矩阵如表4所示。在这种情况下 False Positive 意味着 “not actual good”. 由于元素 c 21 c_{21} c21表示实际的好但预测的坏,表示“not actual bad”. False Positive 作为 c 21 c_{21} c21没有意义.
(V) 变种5
此变体具有以下条件:
Good作为 Positive Bad作为 Negative
False Positive 作为 c 21 c_{21} c21and False Negative as c 12 c_{12} c12.
混淆矩阵如表5所示。在这种情况下, False Positive 意味着 not actual good . 由于元素c21表示实际的坏但预测的好, 它是not actual good . False Positive 作为 c 21 c_{21} c21是有意义的. 同样的, False Negative 作为 c 12 c_{12} c12 也有意义。
(VI) 变种6
这一变式由变式5通过交换非主对角元素产生:
Good作为 Positive Bad作为Negative
False Negative 作为 c 21 c_{21} c21and False Positive 作为 c 12 c_{12} c12.
混淆矩阵如表6所示。在这种情况下, False Negative意味着“not actual bad”. 由于元素 c 21 c_{21} c21表示实际是坏的但预测是好的.因此, False Negative作为 c 21 c_{21} c21是没有意义的。
(VII) 变种7
变种7由变种6通过交换主对角元素得到
Good作为Negative Bad作为Positive
False Negative作为 c 21 c_{21} c21并且 False Positive作为 c 12 c_{12} c12
混淆矩阵如表7所示。在这种情况下, False Negative意味着 “not actual good”,由于元素 c 21 c_{21} c21表示实际是坏的但预测是好的,它是 “not actual good”. 因此False Negative作为 c 21 c_{21} c21是有意义的。同样,False Negative作为 c 12 c_{12} c12也有意义。
(VIII) 变种8
变种8由变种7通过交换非对角元素产生
好作为Negative坏作为Positive
False Positive作为 c 21 c_{21} c21and False Negative作为 c 12 c_{12} c12.
混淆矩阵如表8所示。在这种情况下,False Positive 意味着 “notactual bad”. 由于元素 c 21 c_{21} c21表示实际是坏但预测是好, 它是“not actualgood”. False Positive 作为 c 21 c_{21} c21没有意义
接下来,让我们假设在混淆矩阵中的行和列中Bad都放在Good之前。在这种情况下,2个“True” 情况仍然在主对角线上,2个“False”在非主对角线上。在类似于2.1节的论证之后,我们找到了4个合理的变种(9-12),如表9-12所示。
从第2节中,我们看到8个变种(变体1、3、5、7、9-12)是混淆矩阵的合理变种。在这8个合理的定义中,变体1是使用最频繁的,其次是变体5和变体7。利用混淆矩阵,我们可以通过Positive and Negative,用一种标准的方法来确定以下几种预测精度的指标。
定义3.1 准确率(或总体准确率) 是定义True Positive and True Negative与样本总体的比值
定义3.2 错误率(ERR) 是False Positive and False Negative与样本总数的比值
定义3.3 灵敏度 是指positives的准确性 or the true positive rate,定义为
定义3.4 特异性是指negatives的准确性或the true negative rate,定义为
定义3.5 Type I Error 定义为是 false positive rate或预测为Positives的Negatives比例,定义为
定义3.6 Type II Error 定义为false negative rate 或预测为Negatives的 Positives比例,定义为
定理3.8 测度(3.1)到(3.6)对所有8个合理变种1、3、5、7、9-12具有以下性质
证明 (1)考虑两种不同的情况:(i)Good为Positive,Bad为Negative;(ii)Good是Negative,坏Bad是Positive。对于(i), Total Actual Positives= n G n_{G} nGand Total Actual Negatives= n B n_{B} nB。因此
情形(ii)同样可以以类似的方式被证明。
虽然 False Positive、True Positive、True Positive、True Negative、灵敏度和特异性等个体指标取决于混淆矩阵的定义,但以下6个求和类指标对于混淆矩阵的所有8个变种都是不变的。
定理3.9 以下6个测度对于混淆矩阵的所有8个合理变种1、3、5、7、9 -12都是不变的
证明 (1) TN 和 TP 是两个对角元素, 对于混淆矩阵的8个变种来说,TN+TP都等于 n g g + n b b n_{gg}+n_{bb} ngg+nbb
(2) FN 和FP 是两个非对角元素, 对于8个混淆矩阵的变种来说,FN+FP都等于 n g b + n b g n_{gb}+n_{bg} ngb+nbg
(3)通过(1)可以知道 TN +TP是固定不变的对于8个混淆矩阵的变种来说,因此准确率也是不变的
(4)的证明与(3)相似。
(5)Proof. (1) TN 和 TP 是两个对角元素, 对于混淆矩阵的8个变种来说,TN+TP都等于 n g g + n b b n_{gg}+n_{bb} ngg+nbb
(2) FN 和FP 是两个非对角元素, 对于8个混淆矩阵的变种来说,FN+FP都等于 n g b + n b g n_{gb}+n_{bg} ngb+nbg
(3)通过(1)可以知道 TN +TP是固定不变的对于8个混淆矩阵的变种来说,因此准确率也是不变的
(4)的证明与(3)相似。
(5)
上式的右边相当于
对于混淆矩阵的8个变种来说,这个值都是不变的。
(6)根据定理3.8的(3)和(4),我们有
所以,Type I Error 和 Type II Error 是不变的对于8个合理的混淆矩阵的变体。
与混淆矩阵不同,ROC不使用 cutoff score。然而,ROC仍可能与混淆矩阵有关。根据Siddiqi(2006)、Refaat(2011)和Thomas、Edelman和Crook(2009)的研究,ROC可以通过混淆矩阵的概念来生成。然而,还没有给出分析证明。下面,我们将把所有8个合理的混淆矩阵变式归纳总结为一个定理,并给出一个数学证明
定理3.10 ROC可以通过在xy平面上绘制灵敏度和(1-特异性),这是通过改变所有得分 S 1 , S 2 , . . . , S m {S_1,S_2,...,S_m} S1,S2,...,Sm的cutoff分数来生成的
(1)如果将Bad定义为Positive,Good定义为Negative,则灵敏度在y轴上,(1-特异性)在x轴上。
(2)如果将Bad定义为Negative,Good定义为Positive,则特异性在y轴上,(1-灵敏度)在x轴上。
证明 (1)对于从1到m的任意i;如果我们以 S i S_{i} Si作为cutoff分数,那么根据定义2.2,Bad得分小于或等于 S i S_{i} Si的事件被预测为Bad,用 n b , S i n_{b,S_{i}} nb,Si来表示Bad中得分小于或等于 S i S_{i} Si的事件,故 n b , S i n_{b,S_{i}} nb,Si=TP并且有如下等式:
左边是对于 S i S_{i} Si关于Bad的累计,右边是关于 S i S_{i} Si分数线的灵敏度,因此,关于 S i S_{i} Si的灵敏度可以放在y轴上。
通过定义2.2可得所有Good如果它的得分小于或者等于 S i S_{i} Si也会被预测为Bad,用 n g , S i n_{g,S_{i}} ng,Si来表示Good中得分小于或等于 S i S_{i} Si的事件,故 n g , S i n_{g,S_{i}} ng,Si=FP并且有如下等式:
左边的式子是对于分数 S i {S_i} Si来说,Good
的累计比例,右边是Type I Error=1 – Specificity通过定理3.8中的性质(4)可得到。因此,关于 S i {S_i} Si的1 – Specificity可以放在x轴上。
(2)对于任意i,从1到m;如果我们以 S i S_{i} Si作为cutoff分数,那么根据定义2.2,所有得分小于或等于 S i S_{i} Si的Bad也都是被预测为Bad。用概念(1)中的 u b , S i u_{b,S_{i}} ub,Si,我们得到 u b , S i = T N u_{b,S_{i}}=TN ub,Si=TN,故有:
左边的式子是对于分数 S i {S_i} Si来说,坏事件的累计比例,右边是特异性。因此,关于 S i {S_i} Si的特异性可以放在y轴上.
通过定义2.2,在所有Good中其分数小于或等于 S i {S_i} Si的都被预测为Bad。用来自(1)中的概念 u g , S i u_{g,S_{i}} ug,Si,可以得到 u g , S i u_{g,S_{i}} ug,Si=FN并且
左边的式子是对于分数 S i {S_i} Si来说,Good
的累计比例,右边是Type II Error=1 – Sensitivity通过定理3.8中的性质(3)可得到。因此,关于 S i {S_i} Si的1 – Sensitivity可以放在x轴上。
正如(SIDDIQI 2006)所指出的,一个好的模型应该是真实情况最大化,虚假情况最小化。即准确率最大化或错误率最小化,因为它们加起来等于1,或者灵敏度和特异度之和最大化。
虽然KS在(总体)准确性方面不能保证最佳准确性(Thomas 2009),但它在敏感性和特异性的总和方面提供了最佳分值
定理3.13 对于任意的cutoff分数,有:
如果 cutoff 分数是在KS中获得最大差异的分数S,则等式成立。
证明 KS是Good和Bad之间累计百分比的最大差额,通过定理3.9中的(5),我们能用变种1来代表所有8个合理的混淆矩阵的变种。一开始,我们使用任意的 S i S_{i} Si作为cutoff分数, 1 ≤ i ≤ m 1\leq i\leq m 1≤i≤m
从定理3.10的证明可以看出
以上两个式子相加有
由于 n b , S i n B − n g , S i n G \frac{n_{b,S_{i}}}{n_B}-\frac{n_{g,S_{i}}}{n_G} nBnb,Si−nGng,Si是Good和Bad之间的累计百分比之差,通过KS的定义,可以得到
有 S i = S ∗ S_i=S^* Si=S∗,因此
本文系统地研究了混淆矩阵及其分析性质。我们澄清了混淆矩阵的混淆概念,表明在16种可能的混淆矩阵变种中只有8种是合理的。我们研究了预测精度测度的性质,混淆矩阵的8个合理变种的4个求和测度的不变性质,混淆矩阵与ROC的关系,混淆矩阵与KS的关系。我们还证明了混合矩阵的最优cutoff 分值可以由KS得到。虽然混淆矩阵的8个合理变种都很好,但建议使用变种1、5和7。