方差与z-score标准化
方差公式
,也表示为
。
方差描述的是分布的离散程度,方差为0时则
,即分布不含有任何随机的成分。
由于数据加常量后其方差
不变,乘以
后则变为
,所以对任何分布的数据都可以做一个标准化(z-score),使得方差
,期望
。具体做法为:
import numpy as np
import matplotlib.pyplot as plt
X = np.random.rand(1000)
fig, (axs1, axs2) = plt.subplots(1, 2, figsize=(9, 4))
axs1.plot(X, '.')
axs1.set_ylim(-2, 2)
axs2.hist(X, edgecolor='k', alpha=0.8)
plt.show()
print("mean:", np.round(X.mean(), 2), "std:", np.round(X.std(), 2))
mean: 0.5 std: 0.29
进行z-score标准化
操作(证明过程见下一小节)
W = (X - X.mean())/X.std()
mean = W.mean()
std_var = W.std()
fig, (axs1, axs2) = plt.subplots(1, 2, figsize=(9, 4))
axs1.plot(W, '.')
axs1.set_ylim(-2, 2)
axs2.hist(W, edgecolor='k', alpha=0.8)
plt.show()
print("mean:", np.round(W.mean(), 2), "std:", np.round(W.std(), 2))
mean: -0.0 std: 1.0
打印的信息显示新的数据均值为0,方差为1,但是histgram显示出每个bin(默认10个)的数据数量没有变化。
z-score证明
假设一组数据
的均值为
,方差为
,经过z-score标准化的数据
。
的均值
的方差(已经得知
)
标准正态分布
对于正态分布
,其概率密度函数如下: