标准化与归一化
标准化(去除量纲影响)
第一种:Z-Score标准化
(用在了主成分分析算法中)
简介:Z-Score通过(x-μ)/σ将两组或多组数据转化为无单位的Z-Score分值,使得数据标准统一化,提高了数据可比性,削弱了数据解释性。
总结:Z-Score的主要目的就是将不同量级的数据统一转化为同一个量级,统一用计算出的Z-Score值衡量,以保证数据之间的可比性
自我理解:Z-Score标准化实际上就是概率论中的将一般的正态分布化成标准正态分布,将特征数据的分布调整成标准正态分布(高斯分布),也就是使得数据的均值为0,方差为1.(去均值的中心化(均值变为0);方差的规模化(方差变为1))。只是对个体处理的时候(化成正态分布)标准差除以的是n,而标准化处理的是样本,需要除以n-1(无偏估计),
此方法在整个数据分析与挖掘体系中的位置如下图所示:
经典举例: 假设要比较A与B的考试成绩,A的考卷满分是100分(及格60分),B的考卷满分是700分(及格420分)。很显然,A考出的70分与B考出的70分代表着完全不同的意义。但是从数值来讲,A与B在数据表中都是用数字70代表各自的成绩。这时需要用Z-Score解决量纲不统一问题
下图描述了Z-Score的定义以及各种特征
接下来的标准化计算:
举例假设:
A班级的平均分是80,标准差是10,A考了90分;B班的平均分是400,标准差是100,B考了600分。
通过上面的公式,我们可以计算得出,A的Z-Score是1((90-80)/10),B的Z-Socre是2((600-400)/100)。因此B的成绩更为优异。
反之,若A考了60分,B考了300分,A的Z-Score是-2,B的Z-Score是-1。因此A的成绩更差。
因此,可以看出来,通过Z-Score可以有效的把数据转换为统一的标准,但是需要注意,进行比较时,Z-Score本身没有实际意义,它的现实意义需要在比较中得以实现,这也是Z-Score的缺点之一。
Z-Score的缺点还包括:
1.估算Z-Score需要总体的平均值与方差,但是这一值在真实的分析与挖掘中很难得到,大多数情况下是用样本的均值与标准差替代。
2.Z-Score对于数据的分布有一定的要求,正态分布是最有利于Z-Score计算的。
3.Z-Score消除了数据具有的实际意义,A的Z-Score与B的Z-Score与他们各自的分数不再有关系,因此Z-Score的结果只能用于比较数据间的结果,数据的真实意义还需要还原原值。
插入小知识点:总体,个体,抽样,样本,样本容量之间的区别与例子:见网址:
https://www.cnblogs.com/jackhumeng/p/4371500.html
Z-Score算法的代码实现:
Matlab中:
第一种方法:zscore() 函数可以直接处理括号中的矩阵进行标准化
第二种方法:
Y=(X-repmat(mean(X),5,1))./repmat(std(X),5,1);
mean(X)得到的是1*8的行向量:
repmat函数重复矩阵:
将1*8的行向量平铺5*1,标准差同样处理,进行矩阵间的运算
Python中:
详情查看windows jupyter notebook
归一化:把数据变成(0,1)或者(-1,1)之间的小数。主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。(有助于比较,例如100分制考了多少分就在百分之几的水平)
- 点赞
- 收藏
- 关注作者
评论(0)