Z-Score公式特性证明

Z-Score

在进行数据预处理时,我们常用Z-Score进行数据标准化(Standerlization),可以使得数据的均值为 0,标准差为 1,下面将对这一特性进行证明

Z-Score公式

假设我们有原始数据集X={X1,X2,⋯ ,Xn}X = \lbrace X_1,X_2, \cdots , X_n \rbraceX={X1,X2,,Xn}
则样本均值为:
X‾=1n∑i=1nXi \overline{X} = \frac{1}{n} \sum_{i = 1}^{n}X_i X=n1i=1nXi
样本方差sX2s_X^2sX2为(使用 n−1 作为分母,即贝塞尔校正,这也是 Pandas std() 的默认行为):
sX2=1n−1∑i=1n(Xi−X‾)2 s_X^2 = \frac{1}{n-1} \sum_{i = 1}^{n}(X_i - \overline{X})^2 sX2=n11i=1n(XiX)2
Z-Score描述了这样一种从原来的X={X1,X2,⋯ ,Xn}X = \lbrace X_1,X_2, \cdots , X_n \rbraceX={X1,X2,,Xn}数据集到新的数据集Z={Z1,Z2,⋯ ,Zn}Z=\lbrace Z_1,Z_2, \cdots , Z_n \rbraceZ={Z1,Z2,,Zn}的变换:
Zi=Xi−X‾sX Z_i = \frac{X_i - \overline{X}}{s_X} Zi=sXXiX
我们需要证明的就是:
Z‾=0,sZ=1 \overline{Z} = 0 , s_Z = 1 Z=0,sZ=1

证明

根据均值公式:
Z‾=1n∑i=1nZi=1n∑i=1nXi−X‾sX=1n⋅sX∑i=1n(Xi−X‾)=1n⋅sX(∑i=1nXi−∑i=1nX‾)=1n⋅sX⋅0=0 \begin{align*} \overline{Z} & = \frac{1}{n} \sum_{i = 1}^{n}Z_i \\ & = \frac{1}{n} \sum_{i = 1}^{n}\frac{X_i - \overline{X}}{s_X} \\ & = \frac{1}{n \cdot s_X} \sum_{i = 1}^{n}(X_i - \overline{X}) \\ & = \frac{1}{n \cdot s_X} (\sum_{i = 1}^{n}X_i - \sum_{i = 1}^{n}\overline{X}) \\ & = \frac{1}{n \cdot s_X} \cdot 0 \\ & = 0 \end{align*} Z=n1i=1nZi=n1i=1nsXXiX=nsX1i=1n(XiX)=nsX1(i=1nXii=1nX)=nsX10=0
Z‾=0\overline{Z} = 0Z=0证明完毕
证明标准差为1即证明方差为1根据方差公式:
sZ2=1n−1∑i=1n(Zi−Z‾)2=1n−1∑i=1n(Zi−0)2=1n−1∑i=1nZi2=1n−1∑i=1n(Xi−X‾sX)2=1(n−1)⋅(sX)2∑i=1n(Xi−X‾)2=1sX2⋅1(n−1)∑i=1n(Xi−X‾)2=1sX2⋅sX2=1 \begin{align*} s_Z^2 & = \frac{1}{n-1} \sum_{i = 1}^{n}(Z_i - \overline{Z})^2 \\ & = \frac{1}{n-1} \sum_{i = 1}^{n}(Z_i - 0)^2 \\ & = \frac{1}{n-1} \sum_{i = 1}^{n}Z_i^2 \\ & = \frac{1}{n-1} \sum_{i = 1}^{n}(\frac{X_i - \overline{X}}{s_X})^2 \\ & = \frac{1}{(n-1) \cdot (s_X)^2} \sum_{i = 1}^{n}(X_i - \overline{X})^2 \\ & = \frac{1}{s_X^2} \cdot \frac{1}{(n-1)} \sum_{i = 1}^{n}(X_i - \overline{X})^2 \\ & = \frac{1}{s_X^2} \cdot s_X^2 \\ & = 1 \end{align*} sZ2=n11i=1n(ZiZ)2=n11i=1n(Zi0)2=n11i=1nZi2=n11i=1n(sXXiX)2=(n1)(sX)21i=1n(XiX)2=sX21(n1)1i=1n(XiX)2=sX21sX2=1
因此,sZ2=1s_Z^2 = 1sZ2=1 证明完毕

实现

在python中,实现Z-Score非常简单,下面用一个简单的匿名函数实现:

lambda x : (x - x.mean()) / (x.std())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值