数据归一化,数据标准化
时间: 2024-12-28 15:29:28 浏览: 7
### 数据归一化与数据标准化的概念
#### 归一化的定义
归一化是指将不同量纲、取值范围不同的特征转换到同一尺度下,通常会把数值映射到[0, 1]区间内。这种方法能够有效消除由于变量之间数量级差异带来的影响,从而提高某些机器学习算法的效果[^1]。
#### 标准化的定义
标准化则是指通过对原始数据做线性变换使其服从均值为0、方差为1的标准正态分布的过程。这种方式可以保持原有数据之间的相对距离不变,在处理接近于正态分布的数据集时表现良好,并有助于加速梯度下降等优化过程收敛速度[^3]。
### 方法实现
#### Min-Max 归一化
Min-\min(X)} \]
其中 \(X'\) 表示经过归一化后的值;\(X\) 则代表原输入向量中的某个元素;而 \(\min(X)\), \(\max(X)\) 分别表示该维度上的最小值和最大值。
Python 实现:
```python
from sklearn.preprocessing import MinMaxScaler
import numpy as np
data = [[-1, 2], [-0.5, 6], [1, 8]]
scaler = MinMaxScaler()
normalized_data = scaler.fit_transform(data)
print(normalized_data)
```
#### Z-Score 标准化
Z-score 变换是一种常用的标准化手段,它基于统计学原理来调整数据的位置和比例尺。具体来说就是先求得各列属性的平均数μ以及标准偏差σ,再利用下面这个表达式完成转化:
\[ z_i=(x_i−μ)/σ \]
这里 \(z_i\) 就是我们所得到的新序列里的对应位置处成员;\(x_i\) 对应着未经任何操作前的那个观测点;最后 μ 和 σ 分别指的是总体样本算术均值同各自所属组别的离散程度指标——即所谓的“标准误”。
Python 实现:
```python
from sklearn.preprocessing import StandardScaler
import numpy as np
data = [[-1, 2], [-0.5, 6], [1, 8]]
scaler = StandardScaler()
standardized_data = scaler.fit_transform(data)
print(standardized_data)
```
### 应用场景对比
当面对的是具有明显边界限制或者需要保留绝对大小关系的任务(比如图像像素强度),此时更适合采用 **归一化** 方案。而对于那些依赖协方差矩阵估计参数的学习器而言,则更倾向于运用 **标准化** 来改善性能并加快训练效率。另外值得注意的一点是在构建预测模型的过程中,应该只针对训练集中出现过的实例执行这两种变换之一,而不应对未来可能遇到的真实待测对象施加同样的改变措施[^2]。
阅读全文