作为一名合格的数据分析师,我们常用的统计方法处理均值的方法有 算术、几何均值 。但很多人可能不知道谐波均值到底是什么。很多培训机构也很少提及谐波均值的用途。 今天就给大家分享一下 算术、几何和谐波均值 三者的联系和区别以及 Python 机器学习中的实现。 ![]() ![]() 计算变量或数字列表的平均值是机器学习中的常见操作。 平均值是代表概率分布中最中间大小的数字。因此有多种不同的方法可以根据使用的数据类型来计算平均值。 在使用性能指标评估模型时,例如还会有 G-mean 或 F-Measure 这样特殊的操作。 什么是平均值?该集中趋势是表示用于符号列表中最常见的值的单个符号。 从技术上讲它是描述变量可能具有的所有可能值的概率分布中具有最高概率的值。 ![]() 有许多方法来计算数据样本集中趋势,如平均其总值来计算。这是在数据分布中的最常见的值或中值,条件是必须所有的中间值数据样本中的值是有序的。 均值与中位数和众数的不同之处在于它是根据数据计算的集中趋势的度量。因此根据数据类型有不同的方法来计算平均值。 可能会遇到的三种常见的平均计算类型是算术平均、几何平均和调和平均。还有其他均值和更多的集中趋势测度,但这三种均值可能是最常见的(例如 Pythagorean means)。 算术平均值![]() 算术平均值一般指算术平均数。 计算算术平均值的一种更方便的方法是计算值的总和并将其乘以值数量的倒数: 算术平均值适合数据样本中的所有值都具有相同的度量单位相同的情况,例如所有数字都是高度、美元或英里等。 计算算术平均值时,这些值可以是正数、负数或零。 如果观测样本包含异常值 (特征空间中与所有其他值相距很远的几个值),或者对于具有非高斯分布的数据 (多个峰值,所谓的多模态概率分布)。 当变量具有高斯或类高斯数据分布时,算术平均值在机器学习中应用才更有意义。 使用 NumPy 的 mean() 函数计算算术平均值。 # 计算包含 10 个数字的列表的算术平均值。from numpy import meandata = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]result = mean(data)print('算数平均值: %.3f' % result)算数平均值: 4.500 几何平均数几何平均值被计算为所有值之积,其中N是值的数量的N次方根。 ![]() 如果数据仅包含两个值则这两个值的乘积的平方根就是几何平均值。对于三个值使用立方根,依此类推。 几何平均值适合数据包含具有不同度量单位的情况,例如 高度度量数据、美元金融数据,英里长度数据 混在一起的情况。 几何平均值不能是负值或零值,必须是正数。 机器学习中几何均值是计算 G-Mean几何均值度量,是一种模型评估度量。 使用 SciPy gmean() 函数计算几何平均值。
谐波平均值![]() 谐波平均值也成为调和平均数。 调和平均值计算为值的数量N除以这些值的倒数之和(每个值 1)。 如果只有两个值( 和 ),调和平均值的简化计算可以计算为: 如果数据由速率组成,调和平均值是合适的平均值。 比率是具有不同度量(例如速度、加速度、频率等)的两个量之间的比率。 在机器学习中评估模型时有比率,例如预测中的真阳率或假阳率。 调和平均值不采用负值或零值,所有必须为正值。 在机器学习中使用调和平均值最常见的是 F-Measure(也称为 F1-Measure 或 Fbeta-Measure) 。这是一个常用的模型评估指标,计算的结果精度和召回指标的调和平均值。 使用 SciPy hmean() 函数计算调和平均值。 下面的示例演示了如何 # 计算九个数字列表的调和平均值。from scipy.stats import hmeandata = [0.11, 0.22, 0.33, 0.44, 0.55, 0.66, 0.77, 0.88, 0.99]result = hmean(data)print('调和平均值是: %.3f' % result)调和平均值是: 0.350 如何选择正确的均值?已经回顾了计算变量或数据集的平均值或均值的三种不同方法。 算术平均值是最常用的平均值,尽管在某些情况下可能不合适。 每个均值适用于不同类型的数据例如:
例外情况是如果数据包含负值或零值,则不能直接使用几何平均值和调和平均值。 |
|