其实大部分的评价指标比如误识率,拒识率等都是根据TP,FP,FN,TN计算出来的,为了方便起见,把他们的关系表示为下表:

机器学习准确率计算 机器识别准确率_召回率


为了更好地理解,我把正负样本记做好人和坏人,那么:

  1. TP表示预测为正类的样本中实际也为正样本的个数(本来是好人,预测也是好人)
  2. FP表示预测为正类的样本中实际为负样本的个数(把坏人当成了好人)
  3. FN表示预测为负类的样本中实际为正样本的个数(把好人当成了坏人)
  4. TN表示预测为负类的样本中实际也为负样本的个数(本来是坏人,预测也是坏人)

那么我们可以得到两个全局的评价指标:

\[ACC = (TP+TN)/(TP+TN+FP+FN) \\ ERR = (FP+FN)/(TP+TN+FP+FN) \]

由于在不同的任务中,对指标的侧重点不一样,所以仅使用全局的评价指标并不能完全代表考虑优先级。比如在抓小偷时,没有百分百把握不能轻易动手,因此就要FP尽可能的小。然而在疾病筛查过程中,即使有很小的概率,也不能忽略,因此FN也要尽可能小。所以在不同场景下判断指标出现了偏向,所以又多出两个衍生的评价指标用来适应不同场景的需求:

\[TAR = TP/(TP+FN) \\ FAR = FP/(FP+TN) \]

其中,\(TAR\) 表示预测的正类样本占总的正类样本的比例,也叫 \(TPR\) ,查全率,召回率;\(FAR\) 表示把坏人当成好人的样本占总坏人的比例,也叫误识率,\(FRR\),\(FMR\)

值得注意的是,\(TAR\) 与 \(FAR\) 两者之间没有明确的定量关系,通过 \(ROC\),\(DET\)与其他曲线不同的是,\(ROC\) 和\(DET\)要想理解这个事情,首先要明白threshold是什么。

以声纹识别为例,将 \(M\) 个待检测的声纹信息与 \(N\) 个声纹库的声纹信息分别编码后进行匹配,计算余弦相似度,我们肯定希望相同的声源之间的相似度更高,而不同的声源之间的相似度很低。那么这个相似度就可以理解为threshold。比如:设置的阈值为0,那么所有相似度大于0的都可以看成是相同的声源,所以 \(TP\) 和 \(FP\) 都接近1;同理,设置的阈值为1,那么所有相似度大于1的都可以看成是相同的声源,所以 \(TP\)

  1. \(TP\)
  2. \(FN\)
  3. \(TN\)
  4. \(FP\)

所以 \(TAR\) 与 \(FAR\) 同向变动。根据这个原理以threshold为自变量,将 \(FAR\) 与 \(TAR\) 作为横纵坐标,绘制出了 \(ROC\) 曲线。在 \(ROC\)曲线中,横轴代表 \(FAR\),纵轴代表 \(TAR\),\(ROC\)当 \(ROC\) 曲线是下图中的虚线时,相当于判别器没有效果,因为在虚线上的任何点,无论在任何threshold下,\(FAR\) 与 \(TAR\) 都是相同的,也就是说猜对与猜错各一半,模型没有预测价值。在 \(ROC\) 曲线上,等错误率(ERR)是 \(FAR\) 和 \(TAR\)

机器学习准确率计算 机器识别准确率_召回率_02


除了 \(FAR\) 与 \(TAR\),比如:

  1. \(FRR=1-TAR\):这个没什么好说的,TAR的逆版本,主要用来绘制DET曲线
  2. \(PRE=TP/(TP+FP)\):这个也叫精确率,表示预测正确的正样本在预测为正类的样本中占的比例。

因为 \(FAR\) 与 \(TAR\) 的变化同向,所以通过 \(FAR\) 与 \(FRR\) 来绘制 \(DET\)

机器学习准确率计算 机器识别准确率_相似度_03

\(ERR\) 就是 \(y=x\) 与 \(DET\) 曲线的交点处。与 \(ROC\) 曲线中的描述一致。因为在 \(ROC\) 中,\(ERR\) 就是 \(FAR+TAR=1\) 的交点处。而在 \(DET\) 中,\(ERR\) 同样是 \(FAR=FRR\) 处,因此 \(FAR=1-TAR\) 。习惯上,\(FAR\) 与 \(FRR\)

机器学习准确率计算 机器识别准确率_评价指标_04