z-score

377 阅读2分钟

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

适用范围:

 

z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有离群点数据的情况。该种归一化方式要求原始数据的分布必须是高斯分布,至少是一个近似的高斯分布,否则归一化带不来我们期望的效果。

 

主要应用领域:

在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,Z-score 标准化或中心化常被用到。

 

优缺点:

优点

  1. 有时可提高预测和分类精度,尤其对分类有更显著影响

  2. 可以加快梯度下降速度(加快收敛速度)

 

        

  1. 无量纲化

除去数据的单位限制,将其转化为无量纲的纯数值,使不同单位或者量级的指标能够进行比较和加权.

缺点:

  1. 必须是正态或近似正态分布的原始数据才能进行标准化。

  2. 估算Z-Score需要总体的平均值与方差,但是这一值在真实的分析与挖掘中很难得到,大多     数情况下是用样本的均值与标准差替代。

  3. Z-Score消除了数据具有的实际意义。

 

 

附注:归一化

 

归一化缺点:

 

归一化不易数据扩充,因为归一化依靠数据额最大值与最小值。

归一化后的数据不一定符合标正态分布。

 

归一化应用领域:

 

在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用。

不需要归一化模型:         

       

ICA和基于平方损失的最小二乘法OLS不需要归一化。

 

数据标准化python实现:

 

Dat_quantity=1000

mu = np.array([[1, 3]]) 

arr_pos = np.array([[1, 0.5], [1.5, 3]])  #创建正定矩阵

R = cholesky(arr_pos) #用cholesky进行分解同时判断是否为正定,如果他是正定,必定可以被分解

s = np.dot(np.random.normal(size=(Dat_quantity,2)), R) + mu

 

ser_1,tyt_1=plt.subplots()

 

tyt_1.scatter(s[:,0],s[:,1])

  

Tr=(s-s.mean(0))/(s.std(0))

 

ser_2,tyt_2=plt.subplots()

 

tyt_2.scatter(Tr[:,0],Tr[:,1])

plt.show()

 

注意:数据的标准化处理都是按列处理。