均值移除(Mean Removal / Zero-centering)

📅 2026/6/26 17:48:02
均值移除(Mean Removal / Zero-centering)
为什么要做原因说明消除量纲差异age均值30salary均值10000数值差距大模型难收敛加速梯度下降数据以0为中心梯度更新更稳定、更快PCA/标准化前置很多算法要求数据零均值Python 实现1. 手动计算python import numpy as np data np.array([1, 2, 3, 4, 5]) mean data.mean() # 3.0 data_centered data - mean # [-2, -1, 0, 1, 2]2. pandas列操作python import pandas as pd df[age_centered] df[age] - df[age].mean()3. sklearn标准化流程python from sklearn.preprocessing import StandardScaler scaler StandardScaler(with_meanTrue, with_stdFalse) # 只去均值不缩放 df_centered scaler.fit_transform(df)4. numpy 广播矩阵批量处理python X np.array([[1, 2], [3, 4], [5, 6]]) X_centered X - X.mean(axis0) # 按列去均值 # [[-2, -2], [0, 0], [2, 2]]均值移除 vs 标准化均值移除标准化Z-score公式x - mean(x - mean) / std结果范围均值为0范围不变均值为0标准差为1适用场景已知分布、只需对齐中心需要统一量纲注意点训练集和测试集必须用同一个均值训练集的均值否则数据泄露只对数值型特征做类别型特征不需要