机器学习基础,了解混淆矩阵的所有方面
在本文中,我们将重点了解混淆矩阵和使用混淆矩阵(I类错误,II类错误和准确度)计算的指标。 在分类算法的情况下使用此方法来确定/评估模型的性能。
我们从建立数据集开始,同时建立任何统计或ML模型。 将该数据集分为两部分:培训和测试。 保留测试数据集,并使用训练数据集训练模型。 一旦模型准备好进行预测,我们就尝试对测试数据集进行预测。 一旦将结果分割成类似于上图所示的矩阵,就可以看到我们的模型能够预测正确的数量以及其预测错误的数量。
我们使用测试数据集中的数字填充上图中所示的4个单元格(例如,具有1000个观察值)。
· TP(真阳性):在测试数据集中该列的实际标签为"是",而我们的逻辑回归模型也预测为"是"。 (500观察)
· TN(真阴性):在测试数据集中该列的实际标签为"否",而我们的逻辑回归模型也预测为"否"。 (200观察)
· FP(假阳性):在测试数据集中该列的实际标签为"否",但我们的逻辑回归模型预测为"是"。 (100观察)
· FN(假阴性):在测试数据集中该列的实际标签为"是",但我们的逻辑回归模型预测为"否"。 (200观察)
这4个单元格构成了"混淆矩阵",就像矩阵一样,它可以通过清晰地描绘模型的预测能力来减轻对模型优劣的所有混淆。
混淆矩阵是一个表,通常用于描述分类模型(或"分类器")对一组已知真实值的测试数据的性能。
类型1错误也称为误报,当分类模型错误地为最初的错误观察结果预测真实结果时发生。
例如:假设我们的物流模型正在处理垃圾邮件而非垃圾邮件电子邮件用例。 如果我们的模型将原本很重要的电子邮件标记为垃圾邮件,那么这就是我们的模型I型错误的示例。 在这个特殊的问题陈述中,我们很敏感地尽可能地减少Type I错误,因为进入垃圾邮件的重要电子邮件可能会造成严重后果。
II型错误也称为假阴性,当分类模型错误地为原始真实观察结果预测错误结果时,就会发生II型错误。
例如:假设我们的逻辑模型正在处理一个用例,它必须预测一个人是否患有癌症。 如果我们的模型将患有癌症的人标记为健康人并将其分类错误,则这就是我们的模型发生的II型错误的例子。 在这个特殊的问题陈述中,我们对尽可能减少II型错误非常敏感,因为在这种情况下,如果假阴性继续影响患者,则假阴性可能导致死亡。
现在,以上讨论的三个指标都是通用指标,与您拥有的培训和测试数据的种类以及为问题陈述所部署的分类算法的种类无关。
我们现在正着手讨论非常适合特定类型数据的指标。
让我们从这里开始谈论准确性,这是最适合平衡数据集的指标。 请参考下图,该图源于本文。
> Source: Link
如您所见,平衡数据集是一个由训练数据平均代表1和0,是和否,正负的数据集。 另一方面,如果两个类别标签的比率出现偏差,则我们的模型将偏向一个类别。
假设我们有一个平衡的数据集,让我们学习什么是准确性。
精度是测量结果与真实值的接近程度。 它告诉我们分类模型能够多么准确地预测问题陈述中给出的类别标签。
例如:假设我们的分类模型正在尝试预测客户流失情况。 在上图中,在总共700个实际损耗的客户(TP + FN)中,该模型正确地能够正确分类500个损耗的客户(TP)。 同样,在300个保留客户(FP + TN)中,该模型正确地能够正确分类200个保留客户(TN)。
准确度=(TP + TN)/总客户
在上述情况下,我们看到该模型在1000个客户的测试数据集上的准确性为70%。
现在,我们了解到精度是仅应用于平衡数据集的指标。 为什么会这样? 让我们看一个例子来理解这一点。
在此示例中,该模型是在不平衡数据集上训练的,甚至测试数据集也是不平衡的。 准确度指标的得分为72%,这可能使我们觉得我们的模型在分类方面做得很好。 但是,仔细观察,此模型在预测否定类标签方面做得很糟糕。 它仅预测了100个阴性标记观察结果中的20个正确结果。 因此,如果数据集不平衡,则不应该使用"准确性"度量标准。
这篇文章专注于完整地理解混乱矩阵。
如果您想了解有关可用于评估分类模型的其他指标的更多信息,例如召回率,精度,AUC-ROC等,则可以参考我下面有关该主题的详尽文章。
请继续关注此空间,以获取有关数据科学,机器学习和统计的更多信息!
快乐学习:)
(本文翻译自Juhi Ramzai的文章《Confusion Matrix- Not so confusing anymore!》,参考:
https://towardsdatascience.com/confusion-matrix-not-so-confusing-anymore-3b7a934d623c)