存根 什么是混淆矩阵? - 联合人工智能
关注我们.

AI 101

什么是混淆矩阵?

mm
更新 on

机器学习和数据科学领域最强大的分析工具之一 混淆矩阵。混淆矩阵能够为研究人员提供有关机器学习分类器如何针对数据集中的目标类执行的详细信息。混淆矩阵将展示已正确分类的示例以及错误分类的示例。让我们更深入地了解一下混淆矩阵的结构以及如何解释它。

什么是混淆矩阵?

让我们首先给出混淆矩阵的简单定义。 混淆矩阵是一种预测分析工具。 具体来说,它是一个显示实际值并将其与模型预测值进行比较的表格。 在机器学习的背景下,混淆矩阵被用作分析机器学习分类器在数据集上执行情况的指标。 混淆矩阵生成精确度、准确度、特异性和召回率等指标的可视化。

混淆矩阵特别有用的原因是,与其他类型的分类指标(例如简单准确度)不同,混淆矩阵可以生成有关模型执行情况的更完整图像。 仅使用准确性等指标可能会导致模型完全且一致地错误识别一个类别,但由于平均性能良好而未被注意到。 同时,混淆矩阵 给出不同值的比较 例如假阴性、真阴性、假阳性和真阳性。

让我们定义混淆矩阵代表的不同指标。

混淆矩阵中的回忆

召回率是真实正面示例的数量除以假负面示例的数量和正面示例总数。 换句话说,召回率代表了机器学习模型已分类的真实正面示例的比例。 召回率表示为模型能够从数据集中包含的所有正面示例中分类的正面示例的百分比。 这个值也可以称为“命中率”,相关的值是“灵敏度”,它描述了召回的可能性,或者真正的积极预测的比率。

平台精度 在混淆矩阵中

与召回率一样,精度是一个跟踪模型在正例分类方面的性能的值。 但与召回率不同的是,精确率与模型标记为阳性的示例中有多少是真正阳性的有关。 为了计算这一点,将真阳性示例的数量除以假阳性示例的数量加上真阳性。

为了区分 召回率和准确率更清晰,精确度旨在计算出所有标记为阳性的示例中真正为阳性的百分比,而召回率则跟踪模型可以识别的所有真正阳性示例的百分比。

特异性 在混淆矩阵中

虽然召回率和精确率是跟踪正面示例和真实正面率的值, 特异性 量化真实阴性率或模型定义为阴性且真正为阴性的示例数量。 这是通过将被分类为阴性的示例数量除以假阳性示例与真实阴性示例的数量来计算的。

理解混淆矩阵

照片:Jackverr,来自 Wikimedia Commons,(https://commons.wikimedia.org/wiki/File:ConfusionMatrix.png),CC BY SA 3.0

混淆矩阵的示例

在定义了精度、召回率、敏感性和特异性等必要术语后,我们可以检查这些不同的值如何在混淆矩阵中表示。 在分类的情况下会生成混淆矩阵,适用于有两个或多个类别的情况。 生成的混淆矩阵可以根据需要设置高和宽,以容纳任何所需数量的类,但为了简单起见,我们将检查二元分类任务的 2 x 2 混淆矩阵。

作为示例,假设使用分类器来确定患者是否患有疾病。 这些特征将被输入分类器,分类器将返回两种不同分类之一——患者要么没有患病,要么患病。

让我们从矩阵的左侧开始。 混淆矩阵的左侧表示分类器对各个类所做的预测。 二元分类任务在这里有两行。 关于矩阵的顶部部分,它跟踪数据实例的真实值、实际类标签。

可以通过检查行和列相交的位置来解释混淆矩阵。 根据模型的真实标签检查模型的预测。 在本例中,真实阳性值(正确阳性预测的数量)位于左上角。 误报位于右上角,其中的示例实际上是负面的,但分类器将其标记为正面。

网格的左下角显示分类器标记为负面但实际上是正面的实例。 最后,混淆矩阵的右下角是找到真负值的地方,或者真正错误的例子所在的地方。

当数据集包含两个以上的类时,矩阵会增长相应数量的类。 例如,如果存在三个类,则矩阵将为 3 x 3 矩阵。 无论混淆矩阵有多大,解释它们的方法都是完全相同的。 左侧包含预测值和横跨顶部的实际类别标签。 分类器正确预测的实例从左上角到右下角呈对角线排列。 通过查看矩阵,您可以辨别上面讨论的四个预测指标。

例如,您可以通过将真阳性和假阴性相加,然后除以真阳性示例的数量来计算召回率。 同时,可以通过将假阳性与真阳性相结合,然后将该值除以真阳性总数来计算精度。

虽然人们可以花时间手动计算精度、召回率和特异性等指标,但这些指标非常常用,以至于大多数机器学习库都有显示它们的方法。 例如,Python 的 Scikit-learn 有一个生成混淆矩阵的函数。

博主和程序员,擅长 机器学习 深度学习 主题。 丹尼尔希望帮助其他人利用人工智能的力量造福社会。