数据预处理 归一化(Normalization)

来源:互联网 发布:怎么在淘宝买东西流程 编辑:程序博客网 时间:2024/05/21 12:39

原文地址:http://www.sohu.com/a/124676606_598701

相关文章阅读:http://blog.csdn.net/zbc1090549839/article/details/44103801

知乎相关问题:标准化和归一化什么区别?


数据归一化是为了将不同表征的数据规约到相同的尺度内,常见的尺度范围有[-1, 1],[0, 1]。对于神经网络、支持向量机(SVM),在数据预处理中使用归一化是必不可少的。当然,对于一些模型,归一化也不是必需的,例如决策树。

数据归一化方法:

一、线性归一化(LinearNormalization):

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

其中,min 和 max 分别代表 x 所属区间的最小值和最大值。




特点:数据被均匀地归一到 0~1 之间;

需求:目标值的上界和下界是明确知晓的,例如上图中,我们假设了目标值的最小值为 0,最大值为 1。

这种归一化方式是我们最常见的,在大多数问题中都可以使用,例如在图像识别中,将图像的灰度值 0~255 归整到 0~1 内。


二、Sigmod归一化(SigmodNormalization):

f(x) = 1 / (1 + exp(-ax+b))

假设 a=0.1,b=5,其图像为




这种归一化方式,当我们对数据分布的中间地带需要着重分析,而对两端数据并不是很敏感时,可以使用,具体的 a 和 b 根据问题去调整,其中 a 影响的是上图中蓝色曲线的陡峭程度,b 影响的是曲线的平移。

假设我们需要预测人们幸福感的高低,选择的影响因素有年龄、学历、收入高低等。数据样本中,绝大多数分布在年收入 5w-40w,但是也有极端的在 0.5w 的极低收入和 1000w 的极高收入,并且我们还发现,在 7w-15w 这个区间内,人们的幸福感对收入的高低非常敏感。当然在一些简单处理中,可以设定一个区间范围,例如 [1w, 100w],然后将小于 1w 的当作 1w,将高于 100w 的当作 100w,但是这种处理是相对简单粗暴的,为了不消除极端数据的效果,以及充分考虑中间敏感区间,我们可以使用 Sigmod 归一化方式,能够有效地扩大中间数据的差异性。

与该思想类似的还有反正切函数归一化:

f(x) = atan(ax-b) / PI

其中,PI 为圆周率3.14159…

特点:数据按“敏感性的平均化”被归一到 0~1 之间;

需求:目标值的上界和下界不需要明确知晓,并且对两端数据值不敏感,而对中间部分的数据值敏感。


三、Z-score归一化(Z-scoreNormalization):

f(x) = (x - q) / s

其中,q 是原始数据 x 的均值,s 是原始数据的标准差。归一化的数据符合正态分布,并且其均值为 0,标准为 1。

Z-score 表示原始数据偏离均值的距离长短,而该距离度量的标准是标准方差。该种归一化方式要求原始数据的分布可以近似为高斯分布,否则归一化的效果并不好。Z-score 的数据分布如下图所示:




对于较大数量的数据而言,将会有 68.26% 的数据归一化到 [-1, 1] 之间,95.44% 的数据归一化到 [-2., 2] 之间,99% 的数据归一到 [-3, 3] 之间。

特点:根据数据值的分布情况来进行分布概率的归一化。

需求:原始数据至少近似呈现正态分布。




阅读全文
0 0