数据预处理
标准化:将数据按比例缩放,使之落入一个小的特定区间。用于去除数据的单位限制,将其转化为不同单位或量级的指标能够进行比较和加权。
归一化:标准化的一种方式,将数据统一映射到[0,1]区间上。
意义:
1.提升模型的收敛速度
2.提升模型的精度
min-max 标准化
也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0 – 1]之间。转换函数如下:
x
′
=
x
−
m
i
n
m
a
x
−
m
i
n
x'= \frac {x-min}{max-min}
x′=max−minx−min
其中max为样本数据的最大值,min为样本数据的最小值。这种方法有个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。
Z-score标准化方法
这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1,转化函数为:
x
′
=
x
−
μ
σ
x' = \frac{x−μ}{σ}
x′=σx−μ
其中 μ为所有样本数据的均值,σ为所有样本数据的标准差。
线性函数标准化
将数据归一化到[a,b]区间
1.求得Min和Max
2.计算系数
k
=
(
b
−
a
)
/
(
M
a
x
−
M
i
n
)
k=(b-a)/(Max-Min)
k=(b−a)/(Max−Min)
3.
Y
=
a
+
k
(
X
−
M
i
n
)
Y=a+k(X-Min)
Y=a+k(X−Min)或:
Y
=
b
+
k
(
X
−
M
a
x
)
Y=b+k(X-Max)
Y=b+k(X−Max)
小数定标(decimal scaling)标准化
该方法通过移动数据的小数点位置来进行标准化。小数点移动多少位取决于变量取值中的最大绝对值。将某变量的原始值x使用小数定标标准化到x’的转换函数为:x’=x/(10^j),其中,j是满足使max(|x’|)<1成立的最小整数。假设变量X的值由-986到917,它的最大绝对值为986,为使用小数定标标准化,我们用1000(即,j=3)除以每个值,这样,-986被标准化为-0.986。
非线性归一化
1)对数函数转换:y = log10(x)
2)反余切函数转换:y = atan(x) * 2 / π
3)经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射。该方法包括 log、指数,正切等。需要根据数据分布的情况,决定非线性函数的曲线,比如log(V, 2)还是log(V, 10)等。