Advertisement

方差 标准差_数据均值、方差和标准差

阅读量:

在很多项目中,经常会对数据求均值、方差和标准差,来对数据进行标准化。

举个例子来说,在PyTorch框架中,我们可以通过transforms.Normalize(mean_vals, std_vals)来进行数据标准化处理。

COCO数据集的均值和方差为:

  • mean_vals = [0.471, 0.448, 0.408]
  • std_vals = [0.234, 0.239, 0.242]

ImageNet数据集的均值和方差为:

  • mean_vals = [0.485, 0.456, 0.406]
  • std_vals = [0.229, 0.224, 0.225]

1、平均值

所有数据之和除以数据点的个数,以此表示数据集的平均大小。

b654102107ad85562a2529850cd5e90e.png

2、方差、标准差

方差:是为了表示数据集中数据点的离散程度

af31197877ecf5d27ee3acbcf2a0251f.png

标准差:表示的是数据点的离散程度

0d6ffcbc9576c19ba79a98ef40c2e9af.png

3、为什么使用标准差

与方差相比,使用标准差来表示数据点的离散程度有3个好处:

  • 在衡量数据分散程度时所使用的数值大小上具有一致性(即数量级相同),这使得人们对这些数值具有更强的直观感受能力。以上述10个CPU使用率数据为例,则方差约为41,在标准差方面则为6.4;相比之下后者更能被人们理解。
    • 由于方差和标准差都采用相同的计量单位(如秒),因此在后续分析运算中更加便捷。
    • 当样本数据呈现近似正态分布特征时,在平均值±1个标准差范围内约有68.27%的数据;±2个标准差时约包含95.45%的数据;而±3个标准差则涵盖了约99.73%的数据。

4、贝赛尔修正

在方差公式和标准差公式中采用了以N为分母的方法。这种方法的主要目的是将累积偏差进行平均处理从而抵消数据集规模对离散程度测量的影响

经过贝塞尔修正后的方差公式:

11289d5be5ee7db16d4b6131bcc53678.png

经过贝塞尔修正后的标准差公式:

e91458f0e02027382d4983b70ae46388.png

5、公式的选择

决定是否应用贝塞尔修正取决于数据集的具体属性:当目标仅是计算该特定数据集内部的数据分散程度时(即该数据集代表的是总体),则应采用未经修正的方法;而当处理的是一个样本(sample)时,并希望评估的是这一样本所代表的对象的整体离散程度,则应采用贝塞尔校正的方法。在特殊情况下(例如,在一分钟内采集了十万次IO操作的数据),由于这样的样本规模足以覆盖所有异常值(outliers),因此可以直接应用未加校正的方法来估计总体的数据分散程度。

6、平均值与标准差的适用范围及误用

普遍的统计量均存在特定适用场景;除了平均值之外;方差和标准差也遵循这一规律;它们所要求的数据集需满足以下条件:

中部单峰:

  • 数据集仅呈现单一峰态。
    简单来说,在假想的CPU使用率数据集中
    计算得到的平均值约为50,
    标准差约为31;
    这两个统计指标显然无法有效反映数据特征。
  • 这个峰必然大致位于数据集合中部。
    再比如,在假想的CPU使用率数据集中
    80%的数据点聚集在20附近,
    剩下的20%数值则在30至90之间分布,
    计算得出的平均值约为35,
    标准差约为25;
    如同之前的分析,
    这两个计算结果不仅无助于准确描绘数据特征,
    反而可能导致误导性的结论。

实际中,我们需要对我们自己的数据集计算均值和方差。使用numpy 函数:

(1)求均值:

arr_mean = np.mean(arr)

(2)求方差

arr_var = np.var(arr)

(3)求标准差

arr_std = np.std(arr,ddof=1)

参考:

全部评论 (0)

还没有任何评论哟~