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方法来对数据进行中心化和标准化:

> data=c(1, 2, 3, 6, 3)
> mean(data)
[1] 3
> center=data-mean(data)
> center
[1] -2 -1  0  3  0
> norm=center/sd(data)
> norm
[1] -1.0690450 -0.5345225  0.0000000  1.6035675  0.0000000
 > scale(data,center=TRUE,scale=FALSE)
     [,1]
[1,]   -2
[2,]   -1
[3,]    0
[4,]    3
[5,]    0
attr(,"scaled:center")
[1] 3
> scale(data,center=TRUE,scale=TRUE)
           [,1]
[1,] -1.0690450
[2,] -0.5345225
[3,]  0.0000000
[4,]  1.6035675
[5,]  0.0000000
attr(,"scaled:center")
[1] 3
attr(,"scaled:scale")
[1] 1.870829

scale方法中的两个参数center和scale的解释:
1.center和scale默认为真,即T或者TRUE
2.center为真表示数据中心化
3.scale为真表示数据标准化


数据标准化方法

一,Z-score标准化/标准差标准化

Z-score是最长用的标准化方法。也是SPSS中最常用的标准化方法

用公式表示为:z=(x-μ)/σ

其中z为标准分数;μ为平均数,σ为标准差。

二,min-max标准化/离差标准化

对原始数据的线性变换,使结果落到[0,1]区间。其中max为样本数据的最大值,min为样本数据的最小值。

x* = (x-min) /(max-min)

这种方法有一个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。

三,log函数转换

通过以10为底的log函数转换的方法同样可以实现归一下

x* = log10(x) / log10(max)

max为样本数据最大值,并且所有的数据都要大于等于1。

四,atan函数转换

用反正切函数实现数据的归一化。

x*=atan(x)*2/pi

使用这个方法需要注意的是如果想映射的区间为[0,1],则数据都应该大于等于0,小于0的数据将被映射到[-1,0]区间上。

results for ""

    No results matching ""