Machine Learning 简明教程

Machine Learning - Standard Deviation

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

标准差计算为方差的平方根,方差是每个数据点到均值的平方差的平均值。计算标准差的公式如下——

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

其中——

  1. $\sigma$is the standard deviation

  2. $\Sigma$ 为总和

  3. $x$ 为数据点

  4. $\mu$ 为数据集的均值

  5. $N$ 为数据点的总数

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

Types of Examples

Example 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

Example 2

让我们看另一个例子,我们将使用 Python 和 Pandas 库计算鸢尾花数据集的每列的标准差——

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)

在这个例子中,我们使用熊猫的 read_csv() 方法从 UCI 机器学习存储库加载鸢尾花数据集。然后我们使用 Pandas 数据框架的 std() 方法计算每列的标准差。最后,我们打印每列的标准差。

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

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

这个例子展示了如何使用标准差来理解数据集的可变性。在这个例子中,我们可以看到“花瓣长度”列的标准差远高于其他列,这表明这个特性可能更可变,并且可能更适合分类任务。