使用混淆矩阵来量化错误的代价
统计中有太多令人困惑甚至有时违反直觉的概念。 我的意思是,来吧……即使要解释零假设和另类假设之间的差异也可能会很麻烦。 我要做的就是理解并量化我的错误分析模型的成本。
例如,假设我是一位视力不好并且很难区分狼和牧羊犬的牧羊人。 这显然是一个坏特性,因为犯错的代价非常昂贵:
有时我会把狼与一只牧羊犬混为一谈,而没有采取任何行动,这会导致羊的损失。每次事件使我损失2
另外,有时候我会混淆一只牧羊犬的狼,而无意中杀死了这只牧羊犬,这导致羊群没有受到保护。每次事件使我损失5
好的,我不是一个很好的牧羊人,但是我是一个非常老练的牧羊人,并且我构建了一个神经网络应用程序来区分牧羊犬和狼。 通过对“狼检测”
神经网络的大量训练,我现在有了一个可以准确地以95%的准确度将绵羊狗与狼区分开的工具(见图1)。
图 1:来源:“为什么
深度学习会突然改变您的生活” http://fortune.com/ai-artificial-intelligence-deep-machine-learning ...
好的,这看起来不错,但考虑到误报和误报的代价,95%的精度是否足够好?我是否应该投入更多的时间和精力来提高准确率,以确保我的模型“有利可图”;量化5%的误差使我的分析模型错误?
输入混淆矩阵(如果对某事有准确的描述,则用此名称为准)。
了解混乱矩阵
那么,如何使用混淆矩阵来量化错误的代价呢?也就是说,鉴于业务状况和与错误相关的成本,确定例如以95%的准确度正确预测的模型是否足够好。
在讨论混淆矩阵时,会使用术语“真实条件”(“阳性结果”)和“预测条件”(“阴性结果”)。 这意味着您需要了解与类型I和类型II错误的区别(以及最终的相关成本)。
类型I错误(或误报)是指示实际上不存在给定条件的结果。在我们的牧羊人示例中,这实际上是错误地将动物识别为狼,而实际上却是狗。
II型错误(或假阴性)是指示给定条件实际存在时不存在的结果。在我们的牧羊人示例中,这实际上是错误地将动物识别为狗,而实际上却是狼。
首先,让我们建立混淆矩阵以测试条件:“树林中的那只动物是狼吗?” 积极的条件是“动物是狼”,在这种情况下,我将采取适当的措施(可能不会尝试宠爱它)。 以下是我们用例的2x2混淆矩阵。
真实条件
预测
条件
真实(狼)
假(狗)
真实(狼)
TP
FP
假(狗)
FN
TN
哪里:
真实条件(TP),其中“真实条件”是狼,模型准确地预测了狼。
真实否定(TN),其中“真实条件”是一只狗,模型准确地预测了一只狗。
误报(FP)是I型错误,其中“真实情况”是狗,模型不正确地预测了狼(因此我不小心射中了保护绵羊的狗)。
假阴性(FN)是II型错误,其中“真实条件”是狼,但模型不准确地预测了一只狗(因此我不理会狼,并且它在盛放绵羊的草地上吃饱了)。
因此,一旦神经网络模型产生了涵盖2x2矩阵中上述所有四个条件的混淆模型,我们就可以计算拟合优度和有效性度量,例如模型Precision,Sensitivity和Speciality。
真实条件
预测
条件
单元格概率
真实(狼)
假(狗)
真实(狼)
精密
TP /(TP + FP)
FP /(TP + FP)
假(狗)
FN /(TN + FN)
TN /(TN + FN)
召回率/灵敏度
TP /(TP + FN)
特异性
TN /(FP + TN)
然后,可以使用混淆矩阵来创建以下拟合优度和模型准确性的度量。
精度= TP /(TP + FP)
召回率或灵敏度= TP /(TP + FN)
特异性= TN /(FP + TN)
精度=(TP + TN)/(TP + FP + TN + FN)
运用混淆矩阵
现在让我们回到牧羊人的例子。 我们要确定错误模型的成本或神经网络提供的节省。 我们需要确定模型提供的内容是否比牧羊人已经完成的工作有足够的改进。
在使用Wolf Detection应用程序之前,我(作为牧羊人)具有以下混淆矩阵,其中:
错误肯定率10%的时间里,他把狼误认为是牧羊犬,没有采取任何行动,并且狼造成了2
假阴性5%的情况下,他误以为牧羊犬为狼,无意中杀死了牧羊犬,使羊群处于未受保护的状态,造成5
没有狼检测应用
真实条件
预测
条件
5
真实(狼)
假(狗)
真实(狼)
真实肯定= 75%
误报= 10%
假(狗)
假阴性= 5%
真负= 10%
根据先前的定义,不使用Wolf Detection Application的相应度量标准是:
精度= 88%
召回率/灵敏度= 94%
特异性= 50%
准确度= 85%
现在,使用Wolf Detection应用程序,我们将获得以下混淆矩阵:
带有狼检测应用程序
真实条件
预测
条件
5
真实(狼)
假(狗)
真实(狼)
真实正数= 4
免费
4000/5000 = 80%
误报= 200
每次成本= $ 2
200/5000 = 4%
假(狗)
假阴性= 50
每次发生成本= $ 5
50/5000 = 1%
真负= 750
免费
750/5000 = 15%
使用Wolf Detection Application的混淆矩阵指标是:
精度= 95%
召回/灵敏度= 99%
特异性= 79%
准确度= 95%
将所有这些放到一个表中:
没有狼检测应用程序
与狼检测应用程序
改善
改善百分比
精确
88%
95%
7分
8.0%
召回/灵敏度
94%
99%
5分
5.3%
特异性
50%
79%
29分
58.0%
准确性
85%
95%
10分
11.8%
投资回报率等于:
将误报率从10%减少到4%(每次发生可节省2
假阴性率从5%降低到1%(每次节省5
最后,每个预测的期望值(EvP)=
=($ 2000 * FP%的变化)+($ 5000 * FN%的变化)
=($ 2000 * .06)+($ 5000 * .04)
=每晚平均节省$ 320
概要
并非所有的I型和II型错误都具有同等价值。 您需要花费时间来了解与您的特定案例有关的I型和II型错误的费用。 真正的挑战是确定分析模型对性能的改进是否“足够好”。 混淆矩阵可以帮助我们做出确定。
并且,如果人们仍在为I型和II型错误的概念而苦苦挣扎,我希望下面的图片可以帮助您阐明区别。 呵呵呵
特别感谢我的资深数据科学家之一拉里·伯克(Larry Berk)在此博客上的指导。他仍然比我更了解混淆矩阵的使用!
1