機器學習 - 標準差



標準差是衡量一組資料值圍繞其平均值的變異量或離散程度的指標。在機器學習中,它是一個重要的統計概念,用於描述資料集的擴充套件或分佈。

標準差計算為方差的平方根,方差是資料點與平均值之差的平方和的平均值。計算標準差的公式如下:

$$\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

此示例演示瞭如何使用標準差來了解資料集的可變性。在這種情況下,我們可以看到“花瓣長度”列的標準差遠高於其他列,這表明此特徵可能更具可變性,並且可能對於分類任務更有資訊量。

廣告