数据标准化有理——及常用方法 | 课程福利

数据分析时经常需要数据标准化处理,常见的比如:回归、主成分、因子分析等,在神经网络、聚类分析中也会经常用到数据标准化预处理,甚至感觉一切的数据分析好像都需要标准化预处理。

为什么要标准化

下面是著名的“鸢尾花”数据(R语言自带),以前做分析时用到的,看一下前六行:

640?wx_fmt=png

显然,Sepal.Length(花萼长)与Petal.Width(花瓣宽)大小不在一个数量级,大概相差20倍。

现在,如果我们想做一个简单的数据分析:

Sepal.Width(花萼宽)~其它四个变量的线性关系

显然,Sepal.Length(花萼长)与Petal.Width(花瓣宽)作为一个变量(空间中的正交基),它们应该是平等的(如果没有线性相关关系)。如果直接用原始数据的话,Sepal.Length(花萼长)的系数绝对值应该比较小,因为相比之下,它的数量级大于Petal.Width(花瓣宽)。

这时候,就需要做常规的数据标准化处理,比如:

(每个数-均值)/标准差

用R语言简单演示一下:

直接调用函数scale():

sl.sc <- scale(iris[,1])

可以手动验证:

sl <- iris[,1]

(sl-mean(sl))/sd(sl)

最后发现它们确实用的公式:

(每个数-均值)/标准差

标准化之后的数据就是同一个范围,包括大小、也无量纲。这时候,不管是做回归还是主成分等,就可以继续进行了。

数据标准化主要功能就是消除变量间的量纲关系,从而使数据具有可比性。

标准化方法

对于原始数据序列x,可以有如下常用标准化方法:

1、最小-最大规范化(线性变换)

640?wx_fmt=png

这样,标准化后的数据范围为0<= y <=1,可以取值0和1,分别当x取最值的时候。这是一个线性变换,因为它本身就是一个线性关系式。

2、z-score规范化

640?wx_fmt=png

这是用每个数据首先减去均值再除以标准差,处理后序列正负值的分布反映了数据的峰度偏度。比如:处理后序列负值居多,表明数据小于均值较多,那么均值水平就是为数不多的几个异常较大的值撑起来的。这种方法最常见,用的最多。

3、小数定标规范化

640?wx_fmt=png

这种方法是把大数据适当缩小,然后把预测的数据按照预处理公式变换即可。

4、对数Logistic模式

640?wx_fmt=png

5、模糊量化模式

640?wx_fmt=png

显然,这种处理后数据在【0,1】之间,好像也行。在网上以前见过,真有想象力,这么复杂的式子都能构造出来,数学家就是厉害。

还有很多其它例子。数据标准化在BP神经网络预测中经常会用到,因为生活中的数据总是大大小小、各种影响因素,需要先标准化预测再还原。想一下,其实在做聚类分析时也可以进行标准化的,对于数据值比较大,计算距离,最后误差精度可能比较大,难以控制,也可以通过标准化到0~1之间进行不断迭代聚类等。

总而言之,数据标准化在数据分析中的用处还是很广泛的!

欢迎留言、提建议,觉得不错,记得【点赞】、分享!

猜你可能喜欢


3月开工季,课程半价优惠,点击阅读原文领取福利!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值