F-measure

本文深入解析F1-Measure在信息检索、人工智能及搜索引擎设计中的应用,通过实际场景解释准确率、精确率、召回率的概念,并详细推导F1-Measure的计算公式及其在大规模数据集中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

F1-Measure
转自百度百科
F-Measure又称为F-Score,是IR(信息检索)领域的常用的一个评价标准,计算公式为:
其中
是参数,P是 精确率(Precision),R是 召回率 (Recall)[1]  
当参数
=1时,就是最常见的F1-Measure了:

  

2准确率(accuracy),精确率(Precision),召回率(Recall)编辑

准确率(accuracy),精确率(Precision)和召回率(Recall) [2]  是信息检索,人工智能,和搜索引擎的设计中很重要的几个概念和指标。中文中这几个评价指标翻译各有不同,所以一般情况下推荐使用英文。

概念介绍

先假定一个具体场景作为例子。
假如某个班级有男生80人,女生20人,共计100人.目标是找出所有女生.
  某人挑选出50个人,其中20人是女生,另外还错误的把30个男生也当作女生挑选出来了.
  作为评估者的你需要来评估(evaluation)下他的工作
首先我们可以计算准确率(accuracy),其定义是: 对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。也就是损失函数是0-1损失时测试数据集上的准确率 [3]  .
这样说听起来有点抽象,简单说就是,前面的场景中,实际情况是那个班级有男的和女的两类,某人(也就是定义中所说的分类器)他又把班级中的人分为男女两类。accuracy需要得到的是此君 分正确的人总人数的比例。很容易,我们可以得到:他把其中70(20女+50男)人判定正确了,而总人数是100人,所以它的accuracy就是70 %(70 / 100).
由准确率,我们的确可以在一些场合,从某种意义上得到一个分类器是否有效,但它并不总是能有效的评价一个分类器的工作。举个例子,google抓取了argcv 100个页面,而它索引中共有10,000,000个页面,随机抽一个页面,分类下,这是不是argcv的页面呢?如果以accuracy来判断我的工作,那我会把所有的页面都判断为"不是argcv的页面",因为我这样效率非常高(return false,一句话),而accuracy已经到了99.999%(9,999,900/10,000,000),完爆其它很多分类器辛辛苦苦算的值,而我这个算法显然不是需求期待的,那怎么解决呢?这就是precision,recall和f1-measure出场的时间了.
在说precision,recall和f1-measure之前,我们需要先需要定义TP,FN,FP,TN四种分类情况.
按照前面例子,我们需要从一个班级中的人中寻找所有 女生,如果把这个任务当成一个分类器的话,那么女生就是我们需要的,而男生不是,所以我们称女生为"正类",而男生为"负类".
  相关(Relevant),正类 无关(NonRelevant),负类
被检索到(Retrieved) true positives(TP 正类判定为正类,例子中就是正确的判定"这位是女生") false positives(FP 负类判定为正类,"存伪",例子中就是分明是男生却判断为女生,当下伪娘横行,这个错常有人犯)
未被检索到(Not Retrieved) false negatives(FN 正类判定为负类,"去真",例子中就是,分明是女生,这哥们却判断为男生--梁山伯同学犯的错就是这个) true negatives(TN 负类判定为负类,也就是一个男生被判断为男生,像我这样的纯爷们一准儿就会在此处)
通过这张表,我们可以很容易得到例子中这几个分类的值:TP=20,FP=30,FN=0,TN=50.
精确率(precision)的公式是
 ,它计算的是所有被检索到的item(TP+FP)中,"应该被检索到的item(TP)”占的比例。
在例子中就是希望知道此君得到的所有人中,正确的人(也就是女生)占有的比例.所以其precision也就是40%(20女生/(20女生+30误判为女生的男生)).
召回率(recall)的公式是
 ,它计算的是所有检索到的item(TP)占所有"应该被检索到的item(TP+FN)"的比例。
在例子中就是希望知道此君得到的女生占本班中所有女生的比例,所以其recall也就是100%(20女生/(20女生+ 0 误判为男生的女生))
前文中提到F1-measure的计算公式是
 其推导其实也很简单。
定义:
定义为
调和平均数
可得:

“精确率”与“召回率”的关系

“精确率”与“召回率”虽然没有必然的关系(从上面公式中可以看到),然而在大规模数据集合中,这两个指标却是相互制约的。 [4]  
由于“检索策略”并不完美,希望更多相关的文档被检索到时,放宽“检索策略”时,往往也会伴随出现一些不相关的结果,从而使准确率受到影响。
而希望去除检索结果中的不相关文档时,务必要将“检索策略”定的更加严格,这样也会使有一些相关的文档不再能被检索到,从而使召回率受到影响。
凡是涉及到大规模数据集合的检索和选取,都涉及到“召回率”和“精确率”这两个指标。而由于两个指标相互制约,我们通常也会根据需要为“检索策略”选择一个合适的度,不能太严格也不能太松,寻求在召回率和精确率中间的一个平衡点。这个平衡点由具体需求决定。

  
参考资料
### F-measure 和 E-measure 的定义 #### F-measure 定义 F-measure 是一种综合评估指标,用于衡量分类模型的性能。它结合了精确率 (Precision) 和召回率 (Recall),通过调和平均数的方式计算得出。其公式如下: ```python def f_measure(precision, recall, beta=1): if precision == 0 or recall == 0: return 0 return (1 + beta**2) * (precision * recall) / ((beta**2 * precision) + recall) ``` 其中 \( \beta \) 参数可以调整 Precision 和 Recall 的相对重要性。当 \( \beta = 1 \) 时,称为 F1-score,表示两者同等重要[^1]。 #### E-measure 定义 E-measure(Error Measure)是一种误差度量方式,通常用来量化预测值与真实值之间的偏差程度。它可以被看作是对均方根误差 (RMSE) 或其他误差度量的一种扩展形式,在某些情况下可能涉及更复杂的加权机制或特定场景下的自定义函数[^3]。 --- ### F-measure 和 E-measure 的主要区别 | 特性 | F-measure | E-measure | |---------------------|-----------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------| | **用途** | 主要应用于分类问题,尤其是不平衡类别分布的情况下 | 更广泛地适用于回归或其他连续变量预测任务 | | **核心关注点** | 平衡 Precision 和 Recall | 衡量预测值与实际值之间差距 | | **输入数据类型** | 需要有明确的正负样本标签 | 不依赖于具体标签,仅需数值型的真实值和预测值 | | **适用范围** | 常见于二元或多类别的分类算法评价 | 可用于任何需要比较实测结果与预期目标的应用场合 | 值得注意的是,尽管二者都属于机器学习评测标准的一部分,但它们侧重点完全不同——前者偏向定性分析而后者则倾向于定量描述[^2]。 另外需要注意一点就是如果面对非常大规模的数据集或者特别复杂模型时候,则可能会存在如何平衡公平性和整体表现这样一个挑战;而对于那些完全没有标注信息可用的任务来说(比如聚类), 这些传统的监督式学习里的测量手段就不再适用了[^4]. --- ### 示例代码展示两种度量方法实现 以下是 Python 中简单实现上述两个概念的例子: ```python from sklearn.metrics import precision_score, recall_score # Example for calculating F-Measure y_true = [0, 1, 1, 0] y_pred = [0, 1, 0, 0] precision = precision_score(y_true, y_pred) recall = recall_score(y_true, y_pred) f1_score_value = f_measure(precision, recall) print(f"F1 Score: {f1_score_value}") ``` 对于 E-measure 而言,可以根据具体情况设计不同的损失函数来反映不同业务需求下对错误容忍度的要求变化情况. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值