11.1 缩放、距离与聚类
第 9、10 章都从目标学习:回归使用配送分钟数,分类使用延迟/准时标签。本节移除目标,只根据特征几何询问订单是否形成有用群组。这就是无监督学习(unsupervised learning)。
“无监督”不等于客观或没有假设。没有标签告诉算法什么叫“相似”。特征选择、缩放、距离和计划用途会先定义答案,随后 cluster 才获得颜色。
找群组之前,先设计距离
对两个含 个数值特征的样本 与 ,欧氏距离(Euclidean distance)为:
每个坐标差都会平方,所以数值范围大的特征可能支配结果。若订单金额范围是 0–10,000 元,路线距离只有 0–20 公里,金额几乎能决定所有近邻。把元改成分会让该坐标再放大 100 倍;业务事实没有变化,分组却可能改变。
标准化(standardization)把训练值转换为:
其中 与 只能来自拟合分析的训练或开发数据。新样本通过 transform 重用这些已存统计量。此时单位转换会被抵消,但几何仍不一定自动正确。StandardScaler 对异常值敏感,“方差相等”也不等于“业务重要性相同”。
距离实验会把完整计算画出来。紫色菱形代表新订单,连线通往历史订单。在原始距离下把收入从元切换为分,观察最近邻怎样改变;开启标准化后,单位变化会消失。再调整声明清楚的业务权重,可以看到权重是建模决策,而不是隐藏清洗步骤。
距离还要求语义兼容。欧氏距离适用于差值有意义的连续坐标。one-hot 类别、二元标志、重尾计数、循环小时与缺失指示符都会形成不同几何。把 bike=0、car=1、van=2 当坐标,会凭空制造顺序和等距。应根据真正关心的相似性问题选择或转换特征。
维度很高时,许多成对距离会变得难以区分。冗余相关列还可能让同一概念被重复计数。解释聚类图之前,先检查分布、相关性、异常值与逐特征距离贡献。
观察 K-means 交替执行分配与更新
K 均值(K-means)要求预先给出 个 cluster,并用质心 表示。它最小化群内距离平方和,也叫 inertia:
一次拟合会交替执行两步:
1. 把每个点分给最近质心。
2. 用已分配点的均值替换每个质心。
直到分配或质心稳定。目标可能停在局部解,因此初始化会影响结果。k-means++ 会智能地分散初始中心,多次初始化又增加一层保护。需要可复现时,应显式设置 n_init 与 random_state。
from sklearn.cluster import KMeans
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
clusterer = make_pipeline(
StandardScaler(),
KMeans(n_clusters=3, n_init=20, random_state=42),
)
cluster_labels = clusterer.fit_predict(development[features])cluster ID 是任意编号。同一几何群组在另一次拟合中可能从 2 变成 0。编号既不是等级,也不是数据中隐藏的真实类别。应把它附加到原数据副本,再画像样本量、中位数、范围、缺失模式、时间段,以及没有参与建群的运营结果。
分区实验给你的不是几个策划好的示例,而是一张空白平面。你可以画紧凑团块、弯曲月牙、桥接点、异常值或不等密度,再亲手放置初始质心,执行一次均值更新或运行至收敛。实时计算的 Voronoi 区域和 inertia 会暴露 K-means 能表达哪些结构、初始化如何改变局部解,以及空群或极小群何时出现。
选择 需要多种证据。inertia 会随着 增大必然下降,所以要找有意义的肘部,而不是最小值。轮廓系数(silhouette coefficient)把样本到本 cluster 的平均距离 ,与最近其他 cluster 的平均距离 比较:
接近 1 表示分离较好,接近 0 表示位于边界,负值说明样本可能更适合另一群。但平均 silhouette 仍会隐藏极小或不稳定群。应在多个种子或 Bootstrap 样本上,用调整兰德指数(adjusted Rand index)等不受编号置换影响的指标比较,并检查每群规模。
K-means 只是群组模型之一,不是“聚类”的定义。DBSCAN 等密度方法能够找到不规则连通区域,并把稀疏点标为噪声,但它也引入邻域尺度和密度假设。层次聚类会展示嵌套合并,而 linkage 与切断高度都会改变结果。只有先声明几何和业务用途,算法比较才有意义。
一个 cluster 只有在足够可复现、能用原始单位解释、可以合理行动且不伤害受保护群体,并且优于简单分段规则时才真正有用。下一节将用主成分分析旋转并压缩高维几何,再进行可视化或建模。