这个三个数据用于描述一个模型的好坏程度,分别为召回率、准确度和F值。

定义

在二分类模型中,对于任意一个输入数据,结果只用两个:正类或者负类。对于一个输入数据集,假定该模型产生如下结果:

  • PT: 模型结果为正类且真实为正类的数目
  • PF: 模型结果为正类且真实为负类的数目
  • NT: 模型结果为负类且真实为负类的数目
  • NF: 模型结果为负类且真实为正类的数目

则召回率、准确度和F值的定义分别为:

Recall \(\frac{PT}{PT + NF}\)
Precision \(\frac{PT}{PT + PF}\)
F-score \(\frac{Recall + Precision}{2}\)

召回率和准确度具有相同的分子,分母不同。F值是二者的算数平均数。

搜索引擎的例子

假设给定一个关键字, 搜索引擎返回了100个文档,其中80个是正确的,也即符合关键字, 剩余20个是错误的,也即和给定的关键字没有关系。则此时准确度为: \(80/100 = 80\%\)

假设还有40篇文档也符合这个关键字,但搜索引擎并没有返回这40篇文档,则召回率为: \(80 / (80 + 40) = 67\%\)

由此可见, 召回率表示了搜索引擎从所有符合条件的文档中“召回”正确文档的比例, 而准确度表示了搜索引擎返回文档中正确文档的比例。 所有符合条件的文档和返回文档这两个概念是不同的。

进一步思考

召回率描述了是否有遗漏,准确度描述了是否正确,F值综合了二者。

如果一个模型如果准确率很高,但召回率很低,即使结果中大多数数据是正确的,但却遗漏了很多正确的数据。如果一个模型召回率很高, 但准确率很低,则表示这个模型可能返回所有正确的数据,但返回的数据中,错误的数据也很多。

好的模型应该做到召回率和准确率都较高,也即F值较高。