德州宁津网站建设,邮箱购买,邮箱163登录入口,免费wordpress主题 h51、简介 Data Normalization Techniques 中文翻译成 数据标准化技术#xff0c;它是一系列数据预处理方法#xff0c;用于将数据集中不同特征#xff08;列#xff09;的数值转换到一个统一的尺度或范围内#xff0c;或者调整其分布特性。数据标准化将特征转换为通用尺度它是一系列数据预处理方法用于将数据集中不同特征列的数值转换到一个统一的尺度或范围内或者调整其分布特性。数据标准化将特征转换为通用尺度而不会失真。它的主要目的是解决以下问题
量纲差异 (Scale Differences)不同特征的单位和取值范围可能相差巨大比如年龄是 0-100收入是 0-1000000。这会导致 依赖于距离计算的算法如 KNN、K-Means、SVM被取值范围大的特征所主导。 基于梯度的优化算法如神经网络、逻辑回归收敛速度慢或不稳定。 分布特性某些算法假设数据符合特定的分布如高斯分布标准化可以帮助满足或接近这些假设。
核心目标 在保留数据原有信息如相对大小、排序、分布形状部分方法保留的同时消除量纲差异带来的不良影响提高模型的性能、稳定性和可解释性。 常见的数据标准化技术有Min-Max 缩放、Z-Score 标准化 、Max-Abs 缩放、鲁棒标准化 (Robust Scaling)、单位向量归一化 (Unit Vector Scaling / L2 Normalization)等。
2、Max-Abs Scaling缩放 Max-Abs Scaling 是一种数据预处理技术用于将数值特征特征的每个值缩放到范围 [-1, 1] 之间。它通过将每个特征中的每个值除以该特征的绝对值最大的那个值来实现。
2.1、计算步骤
对于一个特征列假设有 n 个样本 找到该特征的绝对值最大值max_abs计算该列中所有数值的绝对值然后找出这些绝对值中的最大值。 max_abs max(|x₁|, |x₂|, ..., |xₙ|) 缩放每个值将该列中的每一个值xᵢ除以这个 max_abs。 x_scaledᵢ xᵢ / max_abs
2.2、关键特性 范围 结果值严格落在 [-1, 1] 区间内。 保留符号 原始数据中的正负号符号被完全保留下来。正值缩放到 (0, 1]负值缩放到 [-1, 0)零值仍然是零。 保留稀疏性 如果原始数据中有很多零稀疏数据缩放后这些零仍然保持为零。 不移动中心 与 Min-Max Scaling 不同Max-Abs Scaling 不会移动数据的中心点比如均值或中位数。它只是根据数据的最大绝对值进行缩放。如果数据原本是以零为中心的缩放后仍然以零为中心。 对异常值敏感 如果某个特征中存在一个绝对值非常大的异常值那么这个异常值就会成为 max_abs。缩放后其他所有值都会被压缩到一个非常小的区间接近零异常值本身会变成 ±1。这可能会削弱其他数据的信息量。
2.3、适用场景
当你需要将数据缩放到一个有限范围[-1, 1]并且同时满足以下一个或多个条件时Max-Abs Scaling 是一个不错的选择 数据已经或应该以零为中心 例如表示差异、变化量、收益率等数据。 需要保留原始数据的符号正负 负值代表损失、低温、亏损等正值代表收益、高温、盈利等这种符号信息对模型很重要。 数据是稀疏的有很多零值 Max-Abs Scaling 能完美保留这些零值。 不想移动数据的中心点 与 Min-Max Scaling 不同它不会因为减去最小值而改变数据的分布中心如均值、中位数。 3、Min-Max Scaling缩放 Min-Max Scaling最小-最大缩放 是一种数据标准化技术通过线性变换将原始数据等比例压缩到指定的数值范围通常是 [0, 1] 或 [-1, 1]。
3.1、计算公式 3.2、关键特性 固定范围结果严格落在指定区间如 [0, 1]。 保留原始分布形态不改变数据间的相对关系仅缩放位置和比例。 对异常值敏感若存在极大或极小异常值会导致正常数据被压缩到狭窄区间
3.3、适用场景 需要固定范围的数据如图像像素值必须为 [0, 255] 或 [0, 1]。 神经网络输入层要求输入值在统一区间如 [0, 1]以加速梯度下降收敛。 距离敏感型算法如 KNN、SVM确保所有特征权重相等。 重要提示若数据存在异常值优先选择 Z-Score 标准化或 Robust Scaling抗异常值缩放
4、 Z-Score 标准化 Z-Score 标准化又称标准差标准化是一种数据预处理技术通过将数据转换为均值为 0、标准差为 1 的标准正态分布或接近。它不改变数据的原始分布形态但消除量纲差异使不同特征可比。
4.1、计算公式 4.2、关键特性 中心化 缩放 减去均值 (μ) → 数据中心移动到 0。 除以标准差 (σ) → 数据波动范围统一为 1 个单位标准差。 保留分布形态不改变原始数据的偏度、峰度等分布特征仅平移和缩放。 抗异常值相比 Min-Max 缩放受极端值影响较小标准差对异常值敏感度低于极差。 经验法则标准化后约 68% 数据落在 [−1,1]95% 落在 [−2,2]99.7% 落在 [−3,3]若数据服从正态分布。
4.3、适用场景 跨特征比较 例如身高cm和体重kg标准化后可直接对比重要性。 假设数据服从高斯分布的算法 线性回归、逻辑回归、SVM使用 RBF 核、PCA 等。 梯度下降优化 加速神经网络、线性模型的收敛速度。 聚类分析如 K-Means 确保所有特征在距离计算中权重相等。 5、 Robust Scaling 鲁棒缩放
Robust Scaling鲁棒缩放 是一种针对异常值具有强鲁棒性的数据标准化技术。它使用中位数Median 和四分位距IQR 替代均值与标准差避免异常值对数据转换造成扭曲。
5.1、计算公式 5.2、关键特性 抗异常值 中位数Median不受极端值影响均值会被异常值拉偏。 IQR Q3−Q1Q3−Q1 仅反映中间50%数据的离散度忽略异常值。 保留主体数据分布对非异常值区间的缩放更合理。 结果无固定范围转换后数据集中在0附近但范围不固定通常大部分值在 [−3,3][−3,3] 内。
5.3、适用场景 数据包含显著异常值、非正态分布偏态分布、需要稳健的预处理时。 6、 单位向量归一化 (Unit Vector Scaling / L2 Normalization) 单位向量归一化Unit Vector Scaling / L2 Normalization 是一种按样本行进行缩放的技术它将每个样本的特征向量转化为长度为1的单位向量从而保留特征间的比例关系但忽略原始数值的绝对大小。其核心是方向重于幅度适用于依赖角度相似性的场景如余弦相似度计算。
6.1、计算公式 6.2、关键特性 保留特征比例 缩放后特征间的相对大小比例不变如原始向量中 x1:x22:3x1:x22:3归一化后仍为 2:32:3。 方向信息优先 强调特征间的夹角关系如余弦相似度忽略绝对数值差异。
6.3、适用场景 文本分类TF-IDF向量、图像特征匹配、基于余弦相似度的推荐系统。 7、总结 方法优点缺点典型应用场景Min-Max范围固定 ([0,1])直观对异常值敏感图像像素值已知边界且无异常值需要固定范围Z-Score对异常值较鲁棒中心化数据范围不固定最通用PCA, 聚类, SVM, 回归, 神经网络等Max-Abs保留符号和零点适合稀疏数据对极大绝对值异常值敏感以零为中心的数据稀疏数据 (如 TF-IDF)鲁棒缩放对异常值高度鲁棒结果分布可能不直观包含显著异常值的数据单位向量(L2)样本向量模长为1适合余弦相似度改变了特征尺度关系文本挖掘基于余弦相似度的推荐/聚类
关键考虑因素 数据特性 是否存在异常值是否稀疏分布如何 算法需求 距离/相似度计算 (KNN, K-Means, SVM RBF核)Z-Score, Min-Max, 鲁棒缩放 通常更好。 梯度下降优化 (神经网络, 线性模型)Z-Score 最常用中心化稳定梯度。 树形模型 (决策树, 随机森林, XGBoost)通常不需要标准化因为它们基于特征划分而非距离。 基于角度的算法 (余弦相似度)L2 归一化是必需的。 模型解释 有时需要保持特征在可解释的范围内如 Min-Max 到 [0,1]。
代码示例
# Import necessary libraries
import numpy as np
import pandas as pd
from sklearn.preprocessing import MinMaxScaler, StandardScaler, MaxAbsScaler# Create a sample dataset with varying scales
data {Feature_1: [100, 200, 300, 400, 500], # Large rangeFeature_2: [1, 2, 3, 4, 5], # Small rangeFeature_3: [-50, -25, 0, 25, 50] # Negative to positive
}df pd.DataFrame(data)
print(Original Data:\n, df)# ---- Min-Max Scaling ----
minmax_scaler MinMaxScaler()
df_minmax pd.DataFrame(minmax_scaler.fit_transform(df), columnsdf.columns)
print(\nMin-Max Scaled Data:\n, df_minmax)# ---- Z-score Standardization ----
standard_scaler StandardScaler()
df_standard pd.DataFrame(standard_scaler.fit_transform(df), columnsdf.columns)
print(\nZ-Score Standardized Data:\n, df_standard)# ---- Max-Abs Scaling ----
maxabs_scaler MaxAbsScaler()
df_maxabs pd.DataFrame(maxabs_scaler.fit_transform(df), columnsdf.columns)
print(\nMax-Abs Scaled Data:\n, df_maxabs)
总结 数据标准化是数据预处理的关键步骤能显著提升许多机器学习模型的性能和稳定性。Z-Score 标准化 (Standardization) 是最通用和广泛推荐的方法。理解不同技术的原理和适用场景根据你的具体数据和模型需求进行选择至关重要。在实践中经常需要通过实验如交叉验证来确定哪种标准化方法效果最好。