本文已参与「新人创作礼」活动, 一起开启掘金创作之路。
适用范围:
z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有离群点数据的情况。该种归一化方式要求原始数据的分布必须是高斯分布,至少是一个近似的高斯分布,否则归一化带不来我们期望的效果。
主要应用领域:
在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,Z-score 标准化或中心化常被用到。
优缺点:
优点
-
有时可提高预测和分类精度,尤其对分类有更显著影响
-
可以加快梯度下降速度(加快收敛速度)
- 无量纲化
除去数据的单位限制,将其转化为无量纲的纯数值,使不同单位或者量级的指标能够进行比较和加权.
缺点:
-
必须是正态或近似正态分布的原始数据才能进行标准化。
-
估算Z-Score需要总体的平均值与方差,但是这一值在真实的分析与挖掘中很难得到,大多 数情况下是用样本的均值与标准差替代。
-
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()
注意:数据的标准化处理都是按列处理。