代码改变世界

R语言归一化处理

2016-08-24 10:59  猎手家园  阅读(18835)  评论(0编辑  收藏  举报

归一化化就是要把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保正程序运行时收敛加快。 

R语言中的归一化函数:scale

 

数据归一化包括数据的中心化和数据的标准化。

1. 数据的中心化
所谓数据的中心化是指数据集中的各项数据减去数据集的均值。
例如有数据集1, 2, 3, 6, 3,其均值为3,那么中心化之后的数据集为1-3,2-3,3-3,6-3,3-3,即:-2,-1,0,3,0

2. 数据的标准化
所谓数据的标准化是指中心化之后的数据在除以数据集的标准差,即数据集中的各项数据减去数据集的均值再除以数据集的标准差。
例如有数据集1, 2, 3, 6, 3,其均值为3,其标准差为1.87,那么标准化之后的数据集为(1-3)/1.87,(2-3)/1.87,(3-3)/1.87,(6-3)/1.87,(3-3)/1.87,即:-1.069,-0.535,0,1.604,0

数据中心化和标准化的意义是一样的,为了消除量纲对数据结构的影响。在R语言中可以使用scale方法来对数据进行中心化和标准化。

 

scale函数是将一组数进行处理,默认情况下是将一组数的每个数都减去这组数的平均值后再除以这组数的标准差。

其中有两个参数:
center=TRUE,默认的,是将一组数中每个数减去平均值,若为false,则不减平均值;
scale=TRUE,默认的,是将一组数中每个数除以标准差。

 

scale默认情况下:将一组数的每个数都减去这组数的平均值后再除以这组数的标准差。

> scale(ss)
           [,1]
[1,] -1.3805850
[2,] -0.6371931
[3,]  0.1061988
[4,]  0.8495908
[5,]  1.5929827
[6,]  0.1061988
[7,] -0.6371931

attr(,"scaled:center")
[1] 2.857143

attr(,"scaled:scale")
[1] 1.345185