转自:自己画混淆矩阵,防止懵逼 - 惊天臭豆腐的文章 - 知乎

1. 混淆矩阵绘制

关于混淆矩阵,有的书上行表示真实值,列表示预测值。而有的书上行表示预测值,列表示真实值。为了方便记忆,防止懂了又忘,强烈建议统一采用《统计学习方法》的方式——行表示真实值,列表示预测值,如下图:

行:真实值 列:预测值

接下来就是填空:

1)先填写阳性P和隐性N:

**阳性和隐性由预测值决定,所以要从列上看。**凡是预测为1的都是阳性-P,凡是预测为0的都是隐性-N

列值为1的为阳性,列值为0的为阴性

2)接着填写真T假F:

**真假由预测值是否跟真实值一致来决定。**若一致,如副对角线上,则为T。若不一致,如主对角线上则为F。

副对角线真实值与预测值一致(同为1或同为0)故填写T。主对角线填写F

到此为止,混淆矩阵绘制完毕。

2. 召回率、精确率、F1值

首先回顾上一篇画的混淆矩阵中T、F、P、N的含义:T:真,F:假,P:阳性,N:阴性

然后组合:TP:真阳性 TN:真阴性 FP:假阳性 FN:假阴性

精确率

你认为对的中,有多少确实是对的,所占的比率:

你认为对的:即预测值为1的数量=TP+FP

有多少确实是对的:TP

$Precision=\frac{TP}{TP+FP}$

召回率

本来是对的中,你找回了多少对的,所占的比率 :

本来是对的:即真实值为1的数量=TP+FN

你找回了多少对的:TP

$Recall=\frac{TP}{TP+FN}$

F1值:

精确率越高越好,召回率越高越好。

下边式子(2)可以由式子(1)推导出来。从(1)看出,Recall不变时,Precision越大,1/Precision越小,从而F1越大。

同理: Precision不变时,Recall越大,1/Recall越小,从而F1越大。

$$ F1 = \frac {2}{\frac{1}{Precision}+\frac{1}{Recall}}(方便理解)------(1) $$

$$

F1 = \frac{2Precision*Recall}{Precision+Recall}(标准公式)----(2) $$