机器学习中对一个模型的好坏常常用 precisions (精度) 和 recall(召回)来评价。了解这两个得分的意义很有必要。下面简单用两个例子来表述他们分别的意义。
图像识别
一个例子,用一个模型来识别图片中的狗。
图片中包含10只猫和12只狗,模型识别出8只目标狗,而在这 8个目标狗中,真正的狗有 5 只(true positives), 而其它3只为猫(false positives)。有 7只狗没有识别出来(false negatives),有7只猫被成功排除(true negatives)。
下面这张图很直观的反映了这两个参数的计算方法。
在这个例子中
precisions 为 正确的目标狗/识别的目标狗总数 = 5/8
recall 为正确的目标狗/真实狗的总数 = 5/12
搜索引擎搜索
搜索引擎在搜索一个关键词时返回 30 条网页,其中有只有20 条是真正相关的。另外,尚有 40 条相关网页没有搜出来。
那么 精度是 20/30
回归是 20/60
在信息检索中,实例是网页文档,任务是根据搜索条件返回一个相关的网页集合。recall 是检索出来的相关网页数量占相关网页总数的百分比;精度是搜索出来的网页中 相关网页的百分比。精度为 1.0 代表所有搜出来的网页都是相关的,但是不保证所有的相关网页都被搜出来了。召回为 1.0 代表所有的相关网页都被搜索出来了,但是不知道搜出来的结果里混有多少不相关的结果。
在打个比方,一群人里混有一群间谍,精度越低,说明错杀的好人越多;回归越高,就代表叛徒杀得越干净。
总而言之,精度表述了 搜索结果里正确的百分比; 回归反映了搜索的强度。