机器学习 - 标准差



标准差是衡量一组数据值围绕其平均值的变异量或离散程度的指标。在机器学习中,它是一个重要的统计概念,用于描述数据集的扩展或分布。

标准差计算为方差的平方根,方差是数据点与平均值之差的平方和的平均值。计算标准差的公式如下:

$$\sigma =\sqrt{\left [\Sigma \left ( x-\mu \right )^{2}/N \right ]}$$

其中:

  • $\sigma$是标准差

  • $\Sigma$是求和符号

  • $x$是数据点

  • $\mu$是数据集的平均值

  • $N$是数据点的总数

在机器学习中,标准差用于了解数据集的可变性并检测异常值。例如,在金融领域,标准差用于衡量股票价格的波动性。在图像处理中,标准差可用于检测图像噪声。

示例类型

示例 1

在此示例中,我们将使用 NumPy 库来计算标准差:

import numpy as np

data = np.array([1, 2, 3, 4, 5, 6])
std_dev = np.std(data)

print('Standard deviation:', std_dev)

输出

它将产生以下输出:

Standard deviation: 1.707825127659933

示例 2

让我们看另一个示例,在该示例中,我们将使用 Python 和 Pandas 库计算 Iris 花数据集每列的标准差:

import pandas as pd

# load the iris dataset

iris_df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learningdatabases/iris/iris.data',
   names=['sepal length', 'sepal width', 'petal length', 'petal width', 'class'])

# calculate the standard deviation of each column
std_devs = iris_df.std()

# print the standard deviations
print('Standard deviations:')
print(std_devs)

在此示例中,我们使用 Pandas 的 read_csv() 方法从 UCI 机器学习存储库加载 Iris 数据集。然后,我们使用 Pandas 数据框的 std() 方法计算每列的标准差。最后,我们打印每列的标准差。

输出

执行代码后,您将获得以下输出:

Standard deviations:
sepal length    0.828066
sepal width     0.433594
petal length    1.764420
petal width     0.763161
dtype: float64

此示例演示了如何使用标准差来了解数据集的可变性。在这种情况下,我们可以看到“花瓣长度”列的标准差远高于其他列,这表明此特征可能更具可变性,并且可能对于分类任务更有信息量。

广告