机器学习中的混淆矩阵是什么?
混淆矩阵是用于评估监督式机器学习算法的分类性能的工具。
什么是混淆矩阵?
我们人类对事物有不同的感知方式 – 甚至是真相和谎言。对我而言,一条看起来像是10厘米长的线可能对你来说看起来像是9厘米长的线。但实际值可能是9、10或其他值。我们猜测的是预测值!
就像我们的大脑应用我们自己的逻辑来预测某些事物一样,机器应用各种算法(称为算法)来预测问题的预测值。同样,这些值可能与实际值相同或不同。
在竞争激烈的世界中,我们想要知道我们的预测是正确还是错误,以了解我们自己的表现。同样地,我们可以通过机器学习算法正确进行的预测次数来确定其性能。
那么,什么是机器学习算法?
机器试图通过应用一定的逻辑或一组称为机器学习算法的指令来解决问题。机器学习算法有三种类型 – 监督、无监督或强化。
最简单的算法类型是监督学习,其中我们已经知道答案,我们通过使用大量数据来训练算法以得出答案,就像一个孩子通过反复观察他们的特征来区分不同年龄组的人一样。
监督式机器学习算法有两种类型 – 分类和回归。
分类算法根据一些标准对数据进行分类或排序。例如,如果你想要你的算法根据顾客对食物的喜好将其分组 – 那些喜欢比萨饼和那些不喜欢比萨饼的顾客,你会使用决策树、随机森林、朴素贝叶斯或支持向量机等分类算法。
这些算法中哪个算法会做得最好?为什么要选择一个算法而不选择另一个算法?
进入混淆矩阵……
混淆矩阵是评估分类算法性能的一种方法。
如何评估?
假设你将不同的算法应用于我们之前提到的二元问题:根据是否喜欢或不喜欢比萨饼将人们进行分类。为了评估最接近正确答案的算法,你将使用一个混淆矩阵。对于二元分类问题(喜欢/不喜欢、真/假、1/0),混淆矩阵给出了四个网格值,分别是:
- 真正例(TP)
- 真反例(TN)
- 假正例(FP)
- 假反例(FN)
混淆矩阵中的四个网格是什么?
通过混淆矩阵确定的四个值构成了矩阵的网格。
真正例(TP)和真反例(TN)是分类算法正确预测的值,
- TP代表喜欢比萨饼的人,模型正确对其进行了分类,
- TN代表不喜欢比萨饼的人,模型正确对其进行了分类,
假正例(FP)和假反例(FN)是分类器错误预测的值,
- FP代表那些不喜欢披萨(负面),但分类器预测他们喜欢披萨(错误的正面)。FP也被称为一类错误。
- FN代表喜欢披萨的人(正面),但分类器预测他们不喜欢(错误的负面)。FN也被称为二类错误。
为了进一步理解这个概念,让我们看一个现实生活中的场景。
假设你有一个由400个人组成的数据集,他们接受了新冠病毒检测。现在,你得到了各种算法确定新冠病毒阳性和阴性人数的结果。
这里是两个混淆矩阵供比较:
通过观察两者,你可能会认为第一个算法更准确。但是,为了得到一个确切的结果,我们需要一些可以衡量准确性、精确度和其他指标的指标,以证明哪个算法更好。
使用混淆矩阵的指标及其意义
帮助我们决定分类器是否做出了正确预测的主要指标有:
#1. 召回率/敏感度
召回率或敏感度或真阳性率(TPR)或检出概率是正确的正面预测(TP)与总正面(即TP和FN)的比值。
R = TP/(TP + FN)
召回率是正确的正面结果与可能产生的正确的正面结果数量之比的度量。召回率值越高,假阴性就越少,这对算法来说是好的。当了解假阴性很重要时使用召回率。例如,如果一个人心脏中有多个堵塞,而模型显示他完全健康,可能会有生命危险。
#2. 精确度
精确度是所有预测为正的正确预测结果占所有预测为正的结果的比例,包括真阳性和假阳性。
Pr = TP/(TP + FP)
精确度在假阳性非常重要而不能被忽视的情况下非常重要。例如,如果一个人没有糖尿病,但是模型显示有糖尿病,并且医生开了某些药物。这可能导致严重的副作用。
#3. 特异度
特异度或真阴性率(TNR)是在所有可能为阴性的结果中找到的正确阴性结果。
S = TN/(TN + FP)
它是分类器正确识别负值的度量。
#4. 准确度
准确度是正确预测数量与总预测数量的比例。因此,如果你从一个样本中正确找到了20个阳性和10个阴性的值,你的模型准确度将为30/50。
Accuracy A = (TP + TN)/(TP + TN + FP + FN)
#5. 流行度
流行度是所有结果中获得的阳性结果数量的度量。
P = (TP + FN)/(TP + TN + FP + FN)
#6. F值
有时候,仅使用精确度和召回率这两个指标来比较两个分类器(模型)是困难的,因为它们只是四个格子组合的算术平均值。在这种情况下,我们可以使用F值或F1值,它是调和平均数,因为它对于极高值变化不大,更准确。较高的F值(最大为1)表示一个更好的模型。
F Score = 2*Precision*Recall/ (Recall + Precision)
当需要同时处理假阳性和假阴性时,F1分数是一个很好的指标。例如,那些不是COVID阳性的人(但算法显示为阳性)不需要不必要地隔离。同样,那些是COVID阳性的人(但算法说他们不是)需要隔离。
#7. ROC曲线
准确率和精确度等参数是对于数据平衡的很好的指标。对于不平衡的数据集,高准确率不一定意味着分类器效率高。例如,一个班级中有100个学生,其中90个知道西班牙语。现在,即使你的算法说所有100个学生都知道西班牙语,它的准确率也将是90%,这可能会给出错误的模型图像。对于不平衡数据集,ROC等指标更具有效性。
ROC(接收者操作特征)曲线在不同的分类阈值下可视化显示二元分类模型的性能。它是以不同阈值值计算的TPR(真阳性率)与FPR(假阳性率)的绘图,FPR计算为(1-特异性)。图中最接近45度(左上方)的值是最准确的阈值值。如果阈值太高,我们将不会有很多假阳性,但会得到更多的假阴性,反之亦然。
通常,当绘制各种模型的ROC曲线时,面积最大的曲线被认为是更好的模型。
让我们计算分类器I和分类器II的混淆矩阵的所有指标值:
我们可以看到分类器II的精确度更高,而分类器I的准确率稍高。根据手头的问题,决策者可以选择分类器I或分类器II。
N x N混淆矩阵
到目前为止,我们已经看到了二元分类器的混淆矩阵。如果除了是/否或喜欢/不喜欢之外,还有更多的类别怎么办?例如,如果您的算法要对红色、绿色和蓝色图像进行排序。这种类型的分类被称为多类分类。输出变量的数量决定了矩阵的大小。因此,在这种情况下,混淆矩阵将是3×3。
总结
混淆矩阵是一个很好的评估系统,因为它提供了关于分类算法性能的详细信息。它适用于二元和多类分类器,其中有超过2个参数需要考虑。混淆矩阵易于可视化,我们可以使用混淆矩阵生成F分数,精确度,ROC和准确度等所有其他性能指标。
您还可以查看如何选择ML algorithms for regression problems。