数据预处理-标准化

标签:
标准化 |
分类: 数据分析 |
1. 极差归一化(最大值-最小值标准化)
是对原始数据的线性变换,使结果落到区间[0,1]:
y=(x-MinValue)/(MaxValue-MinValue)
该方法有一个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新计算一次max和min。
2. Z标准化(平均方差法)
这是运用最多的基于统计理论的标准化方法,经过处理的数据符合标准正态分布,即均值为0,标准差为1:
y=(x-μ)/ σ
其中μ为样本数据的均值,σ为方差。
3. log函数标准化
通过以10为底的log函数转换的方法:
y=log10(x)/log10(MaxValue)
4. arctan函数标准化
Y=arctan(x)*2/π
得到的标准化后的间间为[-1,1]。若想只要[0,1]区间,数据都应该大于等于0。
2.zscore函数实现z标准化
经过处理的数据符合标准正态分布,即均值为0,标准差为1:
y=(x-μ)/ σ
其中μ为均值,σ为方差。
matlab 里的zscore函数调用格式:
Z = zscore(X)
[Z,mu,sigma] = zscore(X)
[…] = zscore(X,1) % 计算公式中用n代替n-1
[…] = zscore(X,flag,dim) %
flag=0用n;flag=1用n-1;
% dim=1按列(默认);dim=2按行
例2
调用rand函数产生一个随机矩阵,然后调用zscore函数将其按列标准化。
代码:
x=[rand(10,1),5*rand(10,1),10*rand(10,1),500*rand(10,1)]
[xz,mu,sigma] = zscore(x)
mean(xz)
std(xz)
运行结果:x =
xz =
mu =
sigma =
ans =
ans =
前一篇:数据预处理-归一化
后一篇:数据预处理-数据变换