AI 入门 101
什么是混淆矩阵?

机器学习和数据科学中最强大的分析工具之一是混淆矩阵。混淆矩阵能够为研究人员提供有关机器学习分类器如何在数据集的目标类别中表现的详细信息。混淆矩阵将展示正确分类的示例与错误分类的示例。让我们深入了解混淆矩阵的结构和如何解释它。
什么是混淆矩阵?
让我们首先给出混淆矩阵的简单定义。混淆矩阵是一种预测分析工具。具体来说,它是一种表格,用于显示和比较实际值与模型的预测值。在机器学习的背景下,混淆矩阵被用作一种指标来分析机器学习分类器在数据集上的表现。混淆矩阵生成了精度、准确率、特异性和召回率等指标的可视化。
混淆矩阵特别有用,因为,与其他类型的分类指标(如简单的准确率)不同,混淆矩阵提供了模型性能的更完整的图景。仅使用准确率等指标可能会导致模型始终错误地识别一个类别,但由于平均性能良好而未被注意到。同时,混淆矩阵提供了不同值的比较,如假负、真负、假正和真正。

让我们定义混淆矩阵所代表的不同指标。
混淆矩阵中的召回率
召回率是真正的正例数除以假负例数和总正例数。换句话说,召回率代表机器学习模型分类的真实正例的比例。召回率以百分比表示,表示模型能够正确分类的正例占数据集中所有正例的比例。这个值也可以称为“命中率”,而一个相关的值是“敏感性”,它描述了召回的可能性或真正正例预测的速率。
混淆矩阵中的精度
与召回率类似,精度也是跟踪模型在正例分类方面性能的值。然而,精度关注的是模型标记为正例的示例中真正是正例的比例。为了计算这个值,需要将真正的正例数除以假正例数加上真正的正例数。
为了更清楚地区分召回率和精度,精度旨在确定所有被模型标记为正例的示例中真正是正例的百分比,而召回率则跟踪所有真正的正例中模型能够识别的百分比。
混淆矩阵中的特异性
虽然召回率和精度是跟踪正例和真正正例率的值,但特异性量化了真正的负例率或模型定义为负例的示例中真正是负例的数量。这个值是通过将被分类为负例的示例数除以假正例数加上真正的负例数来计算的。
理解混淆矩阵

图片来源:Jackverr via Wikimedia Commons,(https://commons.wikimedia.org/wiki/File:ConfusionMatrix.png),CC BY SA 3.0
混淆矩阵的例子
在定义了精度、召回率、敏感性和特异性等必要术语后,我们可以研究如何在混淆矩阵中表示这些不同的值。混淆矩阵是在分类的情况下生成的,当有两个或更多类别时适用。生成的混淆矩阵可以根据需要任意高和宽,包含任意数量的类别,但为了简单起见,我们将检查一个二元分类任务的2×2混淆矩阵。
例如,假设一个分类器被用于确定患者是否患有某种疾病。特征将被输入到分类器中,分类器将返回两个可能的分类结果:患者没有这种疾病或患有这种疾病。
让我们从矩阵的左侧开始。矩阵的左侧代表分类器为各个类别做出的预测。二元分类任务将在这里有两行。关于矩阵的顶部部分,它跟踪数据实例的真实值,即实际的类别标签。
可以通过检查模型的预测与模型的真实标签的交点来解释混淆矩阵。在这种情况下,真正的正例值,即正确的正例预测,位于矩阵的左上角。假正例位于右上角,即实际为负例但被分类器标记为正例的示例。
网格的左下角显示分类器标记为负例但实际上是正例的实例。最后,混淆矩阵的右下角是真正的负例值,即真正的负例所在的位置。
当数据集包含超过两个类别时,矩阵会根据类别数量增长。例如,如果有三个类别,矩阵将是一个3×3矩阵。无论混淆矩阵的大小如何,解释它们的方法都是相同的。左侧包含预测值,实际的类别标签横跨顶部。分类器正确预测的实例从左上角到右下角对角线排列。通过查看矩阵,可以辨别出上述四个预测指标。
例如,可以通过取真正的正例和假负例,相加,然后除以真正的正例数来计算召回率。同时,精度可以通过将假正例与真正的正例相加,然后将该值除以真正的正例总数来计算。
虽然可以花时间手动计算精度、召回率和特异性等指标,但由于这些指标被广泛使用,大多数机器学习库都有显示它们的方法。例如,Python中的Scikit-learn库有一个函数生成混淆矩阵。












