数据预处理 归一化(Normalization)

原文地址: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, 1\]或\[-1, 1\][^4]。这一过程不仅有助于稳定数值计算,还能有效降低因输入变量间量纲不一致而导致的学习困难。特别是在基于机器学习方法构建的调制识别系统中,良好的归一化策略可提高模型收敛速度并增强其鲁棒性。 #### 实现归一化的具体技术手段 为了适应不同类型的数据分布特性,存在多种具体的归一化方案可供选择: - **最小最大标准化 (Min-Max Scaling)** 将各维度上的取值线性映射到指定的新范围内,公式如下所示: ```python def min_max_scaling(data): scaled_data = (data - data.min()) / (data.max() - data.min()) return scaled_data ``` - **Z-Score 标准化** 计算每个样本相对于总体均值的距离,并除以其标准偏差得到无单位的结果,适用于近似服从正态分布的数据集。 ```python import numpy as np def z_score_normalization(data): mean = np.mean(data) std_deviation = np.std(data) normalized_data = (data - mean) / std_deviation return normalized_data ``` - **对比度归一化** 主要应用于图像领域,但在某些情况下也可用于调整时间序列或其他形式的一维或多维数组型数据。此方法通过对局部区域内的强度变化施加约束条件来达到平滑效果的同时保持重要结构信息不变的目的。 #### 应用场景下的注意事项 值得注意的是,在实际应用时需考虑所选归一化方法是否适合待处理的任务特点以及预期输出的要求。例如,在进行调制识别前如果已知部分先验知识,则可以根据具体情况灵活选用最合适的归一化算法;而对于完全未知环境下的盲源分离等问题,则可能需要尝试更多样化的组合策略以探索最佳实践路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值