機器學習 - 標準差

什么是標準差?

標準差(Standard Deviation,又常稱均方差)是一個數字,描述值的離散程度。

低標準偏差表示大多數數字接近均值(平均值)。

高標準偏差表示這些值分布在更寬的范圍內。

例如:這次我們已經登記了 7 輛車的速度:

speed = [86,87,88,86,87,85,86]

標準差是:

0.9

意味著大多數值在平均值的 0.9 范圍內,即 86.4。

讓我們對范圍更廣的數字集合進行處理:

speed = [32,111,138,28,59,77,97]

標準差是:

37.85

這意味著大多數值都在平均值(平均值為 77.4)的 37.85 范圍內。

如您所見,較高的標準偏差表示這些值分布在較寬的范圍內。

NumPy 模塊有一種計算標準差的方法:

實例

請使用 NumPy std() 方法查找標準差:

import numpy
speed = [86,87,88,86,87,85,86]
x = numpy.std(speed)
print(x)

運行實例

實例

import numpy
speed = [32,111,138,28,59,77,97]
x = numpy.std(speed)
print(x)

運行實例

方差

方差是另一種數字,指示值的分散程度。

實際上,如果采用方差的平方根,則會得到標準差!

或反之,如果將標準偏差乘以自身,則會得到方差!

如需計算方差,您必須執行以下操作:

1. 求均值:

(32+111+138+28+59+77+97) / 7 = 77.4

2. 對于每個值:找到與平均值的差:

 32 - 77.4 = -45.4
111 - 77.4 =  33.6
138 - 77.4 =  60.6
 28 - 77.4 = -49.4
 59 - 77.4 = -18.4
 77 - 77.4 = - 0.4
 97 - 77.4 =  19.6

3. 對于每個差異:找到平方值:

(-45.4)2 = 2061.16 
 (33.6)2 = 1128.96 
 (60.6)2 = 3672.36 
(-49.4)2 = 2440.36 
(-18.4)2 =  338.56 
(- 0.4)2 =    0.16 
 (19.6)2 =  384.16

4. 方差是這些平方差的平均值:

(2061.16+1128.96+3672.36+2440.36+338.56+0.16+384.16) / 7 = 1432.2

幸運的是,NumPy 有一種計算方差的方法:

實例

使用 NumPy var() 方法確定方差:

import numpy
speed = [32,111,138,28,59,77,97]
x = numpy.var(speed)
print(x)

運行實例

標準差

如我們所知,計算標準差的公式是方差的平方根:

√ 1432.25 = 37.85

或者,如上例所示,使用 NumPy 計算標準差:

實例

請使用 NumPy std() 方法查找標準差:

import numpy
speed = [32,111,138,28,59,77,97]
x = numpy.std(speed)
print(x)

運行實例

符號

標準差通常用 Sigma 符號表示:σ

方差通常由 Sigma Square 符號 σ2 表示

章節總結

標準差和方差是機器學習中經常使用的術語,因此了解如何獲取它們以及它們背后的概念非常重要。