调和平均是什么?F1 分数背后的平均方法
调和平均(Harmonic Mean),也叫调和平均数,是平均数的一种。它的计算方法是:先求出一组数的倒数,再求这些倒数的算术平均数,最后再取倒数。对于两个数 a 和 b,调和平均等于 2ab 除以 (a+b)。它与我们最熟悉的算术平均数、以及几何平均数一起,被称为三种经典的平均数,古希腊的毕达哥拉斯学派就已经研究过它们。
一个经典的例子:平均速度
调和平均最典型的用途,是计算平均速度这类“比率”的平均值。假设你开车去一个 60 千米外的地方,去的时候速度是每小时 60 千米,回来的时候速度是每小时 30 千米。往返的平均速度是多少?很多人的第一反应是两个速度的算术平均数:每小时 45 千米。但这是错的。去的时候用了 1 小时,回来用了 2 小时,总共走了 120 千米、用了 3 小时,平均速度是每小时 40 千米。这正是 60 和 30 的调和平均:2 乘 60 乘 30,除以 60 加 30,等于 40。原因在于,你在速度慢的回程上花了更多的时间,所以平均速度应该更靠近较慢的那个速度。
类似地,在投资中,如果每个月都花固定的金额买入某只基金,也就是“定投”,那么平均每份的买入成本,就是各个月份价格的调和平均。由于价格低时买到的份数更多,平均成本会低于价格的算术平均。
调和平均的特点
对于一组正数,三种平均数之间有一个固定的大小关系:调和平均小于等于几何平均,几何平均又小于等于算术平均,只有当所有的数都相等时,三者才相等。调和平均最重要的特点是:它对较小的值非常敏感,很容易被较小的数“拉低”。比如 1 和 100 的算术平均是 50.5,而调和平均只有约 1.98,非常接近较小的那个数。只要其中有一个数接近零,调和平均就会接近零。
在机器学习中:F1 分数
调和平均在机器学习中最著名的应用是 F1 分数。在评价分类模型时,有两个重要的指标:精确率,模型判断为阳性的样本中,有多少是真正的阳性;召回率,所有真正的阳性样本中,有多少被模型找了出来。这两个指标往往相互制约,需要一个综合的指标来同时衡量它们。F1 分数就是精确率和召回率的调和平均。
为什么用调和平均,而不用算术平均?因为调和平均对较小的值敏感,能够惩罚“偏科”。假设一个模型把所有的样本都判断为阳性,它的召回率是 100%,但精确率可能只有 1%。如果用算术平均,得分是 50.5%,看起来还不错;而用调和平均,F1 分数只有约 2%,准确地反映出这个模型其实毫无用处。只有当精确率和召回率都比较高时,F1 分数才会高。在此基础上还有更一般的 F-beta 分数,可以根据实际需要调整对精确率和召回率的重视程度。
其他应用
在信息检索、自然语言处理中,F1 分数被广泛用来评价搜索、实体识别、问答等任务的效果。在金融中,调和平均被用来计算市盈率等比率指标的平均值。在物理中,电阻并联时的等效电阻、弹簧串联时的等效劲度系数等计算也与调和平均有关。