混淆矩阵到底是个什么东东?
大家如果学过机器学习的知识,应该见过这样一个东西
就是这样一个东西,用处可大了。现在我们一起探索这个框框的具体含义(仅在机器学习使用方面)。
1.预备知识
分类模型的评估
请大家回想一下,我们在做分类模型时,通常想要评定一个模型好不好的是怎样评定的呢?通常我们采用模型的准确率来评定一个模型的好坏。也就是说,例如我们现在训练了一个分类模型,现在有100个测试样本等待测试,用模型进行分类测试后发现这个模型测试正确了98个(测试正确的意思即是模型预测出的标签和真实标签相同)。现在,我们就可以说此模型的准确率为98%,这是一个相对非常好的模型(当然,不同场景的判断标准不同)。
但是,这个评定方法却并不是在何中应用场景都能发挥出它的能力,例如,我们现在有一个应用场景是这样的。
准确率在某些方面的不足
我们有100个人的信息,这100个人中有两个人是坏人,有98个都是好人。我们训练了一个模型,需要用此模型找出坏人,进行预测后发现准确率98%,也就是说有2个人我们是预测错了的。那么,按理说这个模型应该是很好了。但是请想像一种极端的情况:如果现在我们判断错的人刚好就是这两个坏人,那么,也就是说,模型的预测结果是“100个人全是好人”,现在这个模型真的好吗?
2.混淆矩阵
为了解决这样的问题。引入了这样几个概念,在介绍这里个概念前,先解释一下混淆矩阵
例如某一个分类模型现在测得这样一个结果
预测值 | 真实值 |
---|---|
A | A |
A | A |
B | A |
A | A |
B | B |
C | C |
C | C |
B | C |
C | C |
对于混淆矩阵里面的各名称的解释
- 正例P(Position) 正例实际上就是我们针对研究的类别用P表示,比如上面的结果现在我们研究A,A就是正例,B和C就是负例
因此对于预测值来说,第一个样本和第二个样本都预测对了,这样的正例A就叫作真正例(在某些地方你会听到又叫正阳例什么的,叫法有点多,但是意思一样)
而第三个样本预测错了,本来他应该是负例,预测成了正例,这样的正例A叫作假正例
- 负例N(negative) 正例的对立项,除开正例就是负例用N表示
如果样本本身就是负例,预测结果也是负例,叫真负例
有些时候,这个样本本来是个正例,预测成了负例,这个负例叫假负例
- T (True) 上面表里面的T就是表示True,意思是真实
- F (False)F就是False,意思是假的
- TP 表示真正例的个数
- FP 表示假正例的个数
- FN 表示假负例的个数
- TN 表示真负例的个数
几个评估概念
- 准确率(Accuracy) 针对整个模型 准 确 率 ( A c c u r a c y ) = 预 测 正 确 样 本 数 预 测 样 本 总 数 准确率(Accuracy)=\frac{预测正确样本数}{预测样本总数} 准确率(Ac