归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为标量。在多种计算中都经常用到这种方法。以下是常见的基础归一化方法:Min-Max 归一化,Z-Score 归一化、小数定标归一化、最大值归一化、向量归一化、Log10与自然对数归一化。
基础归一化方法
一、Min-Max 归一化(最小-最大缩放)
- 定义:Min-Max 归一化是将数据线性映射到 [0, 1] 范围内。
- 公式:
其中,代表归一化前的数据集合,和代表求集合的最大与最小值,和代表归一化前后的对应点值,下同。
MATLAB代码示例
% 假设我们有一个数据矩阵X,其中每行代表一个样本,每列代表一个特征
X = [1 2 3; 4 5 6; 7 8 9];
% 计算每列的最小值和最大值
minX = min(X);
maxX = max(X);
% 使用Min-Max归一化公式进行归一化
% 归一化公式为:(X - minX) ./ (maxX - minX)
X_normalized = (X - minX) ./ (maxX - minX);
% 显示归一化后的数据
disp('归一化后的数据:');
disp(X_normalized);
优点:
- 保持数据间的比例关系,简单易行,适合有固定上下界的数据场景。
- 统一尺度,通过将数据缩放到固定范围,有助于比较不同特征的尺度。
- 保留分布形状,这种方法不会改变数据的分布形状,只是简单地压缩或拉伸到新的范围。
缺点:
- 对极端值(outliers)敏感,如果数据中存在极端值,所有数据都可能被压缩到很小的区间。即当数据集中的最大值和最小值不稳定时,归一化结果也会不稳定。
二、Z-Score 归一化(标准化)
- 定义:Z-Score 归一化通过减去均值再除以标准差,使得数据呈标准正态分布,均值为 0,标准差为 1。
- 公式:
其中,代表标准差,代表均值。
代码
%%利用官方接口函数
% 假设你有一个数据矩阵X
X = [1, 2, 3; 4, 5, 6; 7, 8, 9];
% 使用zscore函数进行标准化
Z = zscore(X);
% 显示标准化后的数据
disp(Z);
%%或直接手搓
% 假设你有一个数据矩阵X,其中每行代表一个样本,每列代表一个特征
X = [1, 2, 3; 4, 5, 6; 7, 8, 9];
% 计算每列的均值和标准差
mu = mean(X);
sigma = std(X);
% 使用z-score公式进行归一化
% Z = (X - mu) ./ sigma;
% 这里我们需要对矩阵的每一列进行操作,所以使用bsxfun函数或者矩阵的广播功能
Z = bsxfun(@minus, X, mu);
Z = bsxfun(@rdivide, Z, sigma);
% 或者,在MATLAB的新版本中,你可以直接使用矩阵的广播功能
% Z = (X - mu) ./ sigma;
% 显示归一化后的数据
disp(Z);
-
优点:
- 不受极端值的影响,适合处理具有正态分布的数据。
- 减少异常值影响,与Min-Max归一化相比,Z-Score归一化受到异常值的影响较小,因为它考虑了整个数据的分布。
- 标准化分布,将数据转换为标准正态分布,使得不同的特征具有相同的尺度。
- 易于比较,在Z-Score归一化后,数据点的值可以直接解释为距离均值的标准差数目。
-
缺点:
- 如果数据分布不是高斯分布,效果可能较差。
- 不能保证数据范围在 [0, 1] 之间。
三、最大值归一化
- 定义:最大值归一化是将数据除以它的绝对最大值,使数据的范围归一化到 [-1, 1] 之间。
- 公式:
优点:
- 简单快速,适合在数据分布中心为零时使用。
缺点:
- 仍然对极端值敏感。
四、小数定标归一化(Decimal Scaling Normalization)
-
定义:小数定标归一化通过将数据除以一个 10 的整数次幂,使归一化后的数据范围在 [-1, 1] 之间。
公式:
其中,j为人工设定的自然数
优点:
- 适合当数据范围比较固定且易于计算时使用。
五、向量归一化
- 定义:向量归一化通常用于将向量的模长标准化,使整个向量的长度为 1。常用于文本处理、图像处理等领域。
- 公式:
向量归一化值=∥x∥x
-
优点:
- 在处理向量(如图像、文本等)的任务中非常有用,可以消除向量长度差异带来的影响。
六、Log10与自然对数归一化
定义
Log10:Log10归一化是指使用以10为底的对数函数对原始数据进行转换。这种方法特别适用于数据范围非常大、分布不均匀或者存在极端值的情况,因为对数函数可以有效地缩小数据的范围,同时保留数据的相对大小关系。常见的应用涉及到地震等级评估与声音的分贝。
自然对数归一化:自然对数归一化则是使用自然对数(以e为底的对数)对原始数据进行转换。自然对数在许多科学和工程领域都有广泛的应用,特别是在处理指数增长或衰减的数据时。
公式:
Log10:
自然数对数:
优点:
- 可以处理非常大的数值,将其转换为较小的范围。
- 对于存在极端值的数据集,对数归一化能够减少这些极端值对模型的影响。
- 保留了数据的相对大小关系,即较大的数在对数转换后仍然较大。其中:在某些数学和统计模型中,自然对数具有更简洁的形式和更好的数学性质,如正态分布的对数变换后仍然保持正态分布。