文章

Z-score标准化与聚类应用

Z-score标准化与聚类应用

Z-score标准化与聚类应用

Z-score 标准化(又称标准分)把每个特征上的取值变换为「相对该特征均值偏离了多少个标准差」,使不同量纲、不同尺度的特征在数值上可比。它本身不是聚类「算法」,而是特征预处理中常用的线性尺度变换;在 K-means、高斯混合模型等依赖欧氏距离或二次型距离的聚类前,常与 Min-Max稳健缩放等方法并列选型。


一、名称由来与在统计中的位置

标准分(standard score) 指观测值相对参考分布中心位置的无量纲相对位置。英文常记为 z-score,其中字母 z标准正态分布的传统记号一致:若参考分布为均值 (\mu)、标准差 (\sigma) 的正态总体,则

[ z = \frac{x - \mu}{\sigma} ]

在经典统计教材与正态分布分位表中,z 长期用于表示「标准正态 (N(0,1))」下的横坐标,因此把「去量纲后的偏离倍数」称为 z-score 是一种习惯记法,并非某个人名的缩写。中文语境下也常直接称 Z 分数标准化得分

需注意:Z-score 标准化特指用样本均值、样本标准差(或总体已知时的 (\mu,\sigma))做上述线性变换;与「Z 检验」「Fisher z 变换」等名称相近但对象不同,讨论聚类预处理时一般指前者。


二、数学定义与直观含义

对特征 (j),设样本为 (x_{1j},\ldots,x_{nj}),样本均值与样本标准差为:

[ \bar{x}j = \frac{1}{n}\sum{i=1}^{n} x_{ij}, \quad s_j = \sqrt{\frac{1}{n-1}\sum_{i=1}^{n}(x_{ij}-\bar{x}_j)^2} ]

(不同库对「样本方差」采用 (n) 或 (n-1) 作为分母可能不同,数值略有差异。)

Z-score 变换为:

[ z_{ij} = \frac{x_{ij} - \bar{x}_j}{s_j} ]

直观理解

  • 变换后该特征在训练集上的均值约为 0,标准差约为 1(具体与实现中采用的方差分母一致)。
  • 每个 (z_{ij}) 表示:第 (i) 个样本在第 (j) 维上高于或低于该维平均水平几个「典型波动单位」

多维数据,通常逐列独立标准化(每列用自己的 (\bar{x}_j,s_j)),除非采用刻意耦合各维的变换(如白化)。


三、主要作用与典型使用场景

作用说明
消除量纲把「米、千克、元」等不可比单位转为无量纲相对偏离,便于跨特征加权。
缓和尺度支配未标准化时,数值范围大的特征往往在距离度量中支配结果;标准化后各维在统计意义上「同量级波动」。
衔接假设部分模型(如基于高斯假设的生成模型、线性回归误差项假设)在标准化后更易满足或更易优化。

典型场景

  • 聚类、最近邻、RBF 核 SVM 等依赖 欧氏距离内积 + 尺度敏感 的算法前的预处理。
  • 梯度下降类训练神经网络时,输入标准化常有助于收敛稳定性(与 BatchNorm 等层内归一化可叠加讨论)。
  • 多指标打分主成分分析(PCA) 前常先标准化,避免方差大的变量主导主成分方向。

四、与其他归一化 / 尺度变换的对比

方法变换形式(单特征示意)与 Z-score 的主要区别
Z-score(标准化)((x-\mu)/\sigma),均值 0、方差 1异常值敏感:极端值会拉高 (s_j),可能压缩主体区间。
Min-Max 缩放到 [0,1]((x-\min)/(\max-\min))把数据压进固定区间;强依赖 (\min,\max),异常值会显著拉伸区间。
MaxAbs(x/\max|x|)适合稀疏、已中心在 0 附近的数据;不保证方差为 1。
RobustScaler(中位数与 IQR)((x-\text{median})/\text{IQR})抗离群优于 Z-score;不保证方差为 1,分布形状可能仍偏斜。
L2 归一化(按行)向量除以 (\ell_2) 范数作用于样本向量整体长度,与「按列」的 Z-score 目的不同;常用于文本向量、余弦相似度场景。

选型提示

  • 特征近似正态、无明显离群:Z-score 简单有效。
  • 离群点多:优先尝试 RobustScaler 或对原特征做截断/ winsorize 后再 Z-score。
  • 要求有界输入(如某些神经网络输入层):可考虑 Min-Max,但聚类前仍要警惕异常值对 (\min,\max) 的影响。

五、本方法的优点、缺点与使用限制

5.1 优点

  • 形式简单,与「均值、标准差」的统计解释一致,便于沟通与复现。
  • 线性可逆(保留 (\bar{x}_j,s_j) 即可还原),不引入非线性扭曲。
  • 在特征近似同分布形状、仅尺度不同时,能有效平衡各维在距离中的贡献。

5.2 缺点与局限

  • 对离群值敏感:少数极端点会增大 (s_j),使大量正常点被压到窄区间,削弱区分度
  • 每个特征独立缩放:若特征间存在强相关或非线性流形,仅靠 Z-score 不能解决「该用何种距离/何种聚类假设」的问题。
  • 训练/预测一致性:聚类若在训练集上估计 (\bar{x}_j,s_j),对新样本应用时应使用同一组统计量(与 sklearn StandardScalerfit/transform 逻辑一致),否则分布漂移会导致簇标签含义变化。

5.3 使用前提(落地前宜明确)

  • 特征为数值型;类别变量需独热编码等后再与其他连续特征一并考虑是否缩放。
  • 缺失值需先处理,否则均值、方差无定义或偏差大。
  • 常量特征((s_j=0))在实现中常跳过或填常数,需在管道中显式处理。

六、在聚类中的应用

6.1 为何聚类常要做 Z-score

许多聚类目标(如 K-means 最小化簇内平方和高斯混合的协方差假设)在欧氏距离马氏距离框架下,特征尺度不一致会导致:

  • 数值范围大的维度在 (\sum (x_i - c)^2) 中占主导,簇划分被少数特征绑架
  • 与业务上「各指标同等重要」的假设不符。

对各维做 Z-score 后,至少在各维方差层面拉平,使距离更反映「多维综合相似性」,而非单一高方差维。

6.2 数值示例:源数据与 Z-score 手算

下面用 3 条样本、2 个特征 演示「原始矩阵 → 按列均值与样本标准差 → Z-score」。特征 A 表示年龄(岁),B 表示月收入(千元),量纲不同;手算采用样本标准差(分母 (n-1),与常见统计定义一致)。注意sklearn.preprocessing.StandardScaler 默认方差分母可能与下表略有差异,以官方文档为准,此处重在展示公式与数量级直觉。

(1)源数据

样本特征 A(年龄)特征 B(月收入·千元)
11830
23060
34290

(2)按列计算均值与样本标准差

对第 (j) 列:(\bar{x}j=\frac{1}{n}\sum_i x{ij}),(\displaystyle s_j=\sqrt{\frac{1}{n-1}\sum_i (x_{ij}-\bar{x}_j)^2})。此处 (n=3)。

特征(\bar{x}_j)离差平方和 (\sum_i (x_{ij}-\bar{x}_j)^2)(s_j=\sqrt{\cdot/(n-1)})
A((18+30+42)/3=30)((-12)^2+0^2+12^2=288)(s_A=\sqrt{288/2}=12)
B((30+60+90)/3=60)((-30)^2+0^2+30^2=1800)(s_B=\sqrt{1800/2}=30)

(3)逐元素 Z-score:(z_{ij}=(x_{ij}-\bar{x}_j)/s_j)

样本(z_{iA}=(x_{iA}-30)/12)(z_{iB}=(x_{iB}-60)/30)
1((18-30)/12=-1.00)((30-60)/30=-1.00)
2((30-30)/12=0.00)((60-60)/30=0.00)
3((42-30)/12=1.00)((90-60)/30=1.00)

直观对照:未标准化时,B 的数值跨度(30~90)远大于 A(18~42),若直接用欧氏距离,收入差会主导距离;上表标准化后,两列在样本 1/2/3 上均为 (-1,0,1) 同步变化,单维不再因原始量纲大而支配距离,更贴近「两维同等重要」时的聚类输入。(真实数据很少如此对称,本例仅用于说明尺度拉平效果。)

(4)比对:Min-Max 与 MaxAbs(同一源数据)

(1) 的源数据上,再按第四节中的两类常见变换各算一遍,便于与 (3) 的 Z-score 对照。

  • Min-Max(缩放到 ([0,1])):对第 (j) 列,(x’{ij}=(x{ij}-\min_j)/(\max_j-\min_j))。
    • 特征 A:(\min=18,\max=42),极差 (24)。
    • 特征 B:(\min=30,\max=90),极差 (60)。
样本(x’{iA}=(x{iA}-18)/24)(x’{iB}=(x{iB}-30)/60)
1((18-18)/24=0.00)((30-30)/60=0.00)
2((30-18)/24=0.50)((60-30)/60=0.50)
3((42-18)/24=1.00)((90-30)/60=1.00)
  • MaxAbs:对第 (j) 列,(x’{ij}=x{ij}/\max_kx_{kj})(与 sklearn.preprocessing.MaxAbsScaler 一致,常用于已大致中心化或稀疏特征;本例数值均为正,故等价于除以列最大值)。
    • 特征 A:(\max·=42)。
    • 特征 B:(\max·=90)。
样本(x’{iA}=x{iA}/42)(x’{iB}=x{iB}/90)
1(18/42\approx 0.43)(30/90\approx 0.33)
2(30/42\approx 0.71)(60/90\approx 0.67)
3(42/42=1.00)(90/90=1.00)

三种方式对照(同一批样本)

样本Z-score(A, B)Min-Max [0,1](A, B)MaxAbs(A, B)
1(-1.00,\,-1.00)(0.00,\,0.00)(\approx 0.43,\,\approx 0.33)
2(0.00,\,0.00)(0.50,\,0.50)(\approx 0.71,\,\approx 0.67)
3(1.00,\,1.00)(1.00,\,1.00)(1.00,\,1.00)

小结:本例中 Z-scoreMin-Max 在三个样本点上两维成比例同步(中点均为 0 与 0.5),但 Z-score 可取负值、且由均值与标准差决定尺度;Min-Max 把端点钉在 0 与 1,强依赖列内 (\min/\max)。MaxAbs 在本例(全正)下两维最大值均为 1,但样本 1、2 上 A、B 的比例不再相同(如样本 1 为 (0.43) vs (0.33)),与 Z-score / Min-Max 的「两列完全平行」不同——因 MaxAbs 不做减均值,仅按列最大绝对值缩放,适合与「稀疏、符号特征」搭配的场景与 Z-score 的统计含义并不等价。聚类前具体选用哪一种,仍需结合第四节的尺度选择思路,以及数据中的离群、分布形状等因素决定。

6.3 与常见聚类算法的关系

算法族与标准化的关系
K-means、Mini-Batch K-means强依赖欧氏距离;强烈建议标准化或同等尺度的特征。
GMM、谱聚类(部分实现)常假设各向同性或需估计协方差;标准化常作为第一步。
层次聚类(全连接、Ward 等)基于距离的链接方式同样受尺度影响,宜标准化。
DBSCAN、HDBSCAN距离与 (\varepsilon) 含义与量纲绑定;需标准化后再调 (\varepsilon),否则难以跨特征解释。
基于余弦相似度 / 稀疏高维文本更常见 L2 归一化或专用度量;Z-score 未必是最优,需按数据类型选择。

6.4 实践注意

  • 先标准化再选 (K) 或距离阈值:否则不同预处理下最优超参不可比。
  • 类别与连续混合:独热维度仅 0/1 时,与已标准化连续维混用可能仍需加权分块距离,不能认为「一次 Z-score 解决所有问题」。
  • 可解释性:标准化后簇中心在原特征空间的解释需逆变换回原始单位,便于业务沟通。

七、代码示例(scikit-learn)

1
2
3
4
5
6
7
8
9
10
11
12
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans

# X: shape (n_samples, n_features)
scaler = StandardScaler()
X_std = scaler.fit_transform(X)

kmeans = KMeans(n_clusters=3, random_state=42, n_init="auto")
labels = kmeans.fit_predict(X_std)

# 簇中心在原特征空间的解释(可选)
centers_original = scaler.inverse_transform(kmeans.cluster_centers_)

说明StandardScaler 的方差、标准差分母以 scikit-learn 当前版本文档为准。生产环境建议将 scaler 与聚类器 放在同一 Pipeline 中,避免训练/测试不一致。


八、小结

维度要点
本质按列 ((x-\mu)/\sigma) 的线性标准化,使各特征大致零均值、单位方差。
名称z-score 与标准正态记号习惯相关,非独立「聚类算法」。
场景量纲混杂、依赖欧氏/二次型距离的聚类与分类前预处理。
对比Min-MaxRobustScaler行归一化等目标不同;离群敏感是主要弱点。
聚类K-means、GMM、密度法调参等常先标准化,再调 (K) 或 (\varepsilon);余弦相似度/稀疏文本需另案讨论。

九、参考

  1. scikit-learn — StandardScaler — 实现细节与 fit/transform 语义
  2. Wikipedia — Standard score — 标准分定义与历史语境
  3. Hastie, Tibshirani, Friedman — The Elements of Statistical Learning — 聚类与预处理在教科书中的常规表述(以具体章节为准)
本文由作者按照 CC BY 4.0 进行授权