https://www.w3schools.com/python/python_ml_standard_deviation.asp

 

Python Machine Learning Standard Deviation

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

Standard Deviation

표준 편차입니다. 머신러닝에서 표준편차라는 개념이 정말 기본적이면서 중요하다고 생각됩니다. 아주 간단히 설명하면 표준 편차는 각 값들의 밀집도를 확인하는 개념입니다. 단순히 [9,10,11]은 표준편차 값이 작고 [1,10,19]는 표준편차 값이 크다고 보면 됩니다.

1
2
3
4
5
6
7
import numpy
 
speed = [86,87,88,86,87,85,86]
 
= numpy.std(speed)
 
print(x)
cs

위와 같이 numpy.std() 함수로 간단히 구할 수 있습니다.

값은 0.9035079029052513 으로 거의 1에 가깝습니다. 즉 각 값들의 편차가 크지 않다는 말입니다.

그리고 이 값은 리스트 안의 값들의 평균값인 86.4로부터 떨어져 있는 정도의 평균값이 0.9정도라고 이해하면 됩니다.

Variance

수학시간에 늘 표준편차와 함께 배우는 분산입니다.

분산은 얼마나 각 값들이 분산되어 있나, 흩어져 있는 정도를 나타내는 값입니다.

w3schools에서는 실제 분산을 구하는 과정을 알려주고 있습니다.

 

speed = [32,111,138,28,59,77,97] 을 대상으로,

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.167 = 1432.2

 

이 역시 numpy의 var() 함수를 통해 쉽게 구할 수 있습니다.

1
2
3
4
5
6
7
import numpy
 
speed = [32,111,138,28,59,77,97]
 
= numpy.var(speed)
 
print(x)
cs

Standard Deviation

다시 표준편차로 돌아와서 분산값에 루트를 씌우면 표준편차가 됩니다. 분산값을 구할 때 각 값들의 평균값과의 차이에 제곱을 했기때문에 다시 루트를 씌우는 것이라고 생각하면 될 듯 합니다.

 

머신러닝에서 평균/분산/표준편차는 중요하여 항상 그 컨셉을 숙지해야 한다고 합니다.

그냥 그런가보다 하고 넘어가는 것으로...😅

+ Recent posts