数据的标准化处理——基于R
归一化(normalization)
将数据缩放到[0,1]的(min—max Normalization)
X
∗
=
X
i
−
X
m
i
n
X
m
a
x
−
X
m
i
n
X^{\ast}=\frac{X_i-X_{min}}{X_{max}-X_{min}}
X∗=Xmax−XminXi−Xmin
通常将上面这种标准化称为归一化
缩放到[-1,1]的 Mean —Normalization
X
∗
=
X
i
−
m
e
a
n
(
X
)
X
m
a
x
−
X
m
i
n
X^{\ast}=\frac{X_i-mean(X)}{X_{max}-X_{min}}
X∗=Xmax−XminXi−mean(X)
r语言实现
这是我用到的数据,数据名称data
normalize <- function(x){
return ((x-min(x))/(max(x)-min(x)))
}
apply(data,2,normalize)#data是我用的数据,2表示对列操作,normalize是归一化函数
标准化
将数据变换为均值为0,标准差为1的分布,并非一定是标准正态的
X ∗ = X i − μ σ X^{\ast}=\frac{X_i-\mu}{\sigma} X∗=σXi−μ
其中μ是均值,σ是标准差
数据的标准化并不会改变原有数据的分布,如果原有数据服从正态分布,则标准化后数据将服从标准正态分布
r语言实现
还是上面那个数据
r语言scale函数可以实现标准化
*scale(x,center=T,scale=T)后面两个T是默认的,center是中心化,即减去每一列均值,scale是除以每一行标准差
scale(data)
标准化后的数据