ARTICLE
k-means
k-means (K-Means Clustering) k-means (K-均值聚类) 是无监督学习 (Unsupervised Learning) 中最经典、应用最广泛的聚类算法之一。其核心目标是将 n 个数据点划分到 k 个互不相交的簇 (cluster) 中,使得每个数据点被分配到离其最近的簇中心(质心),同时最小化簇内数据点与其质心之间距离的平方
k-means (K-Means Clustering)
k-means (K-均值聚类) 是无监督学习 (Unsupervised Learning) 中最经典、应用最广泛的聚类算法之一。其核心目标是将 个数据点划分到 个互不相交的簇 (cluster) 中,使得每个数据点被分配到离其最近的簇中心(质心),同时最小化簇内数据点与其质心之间距离的平方和。k-means 由 Stuart Lloyd 于 1957 年首次提出,后经 James MacQueen 于 1967 年命名并推广。
核心思想与目标函数
k-means 的优化目标是最小化簇内平方和 (Within-Cluster Sum of Squares, WCSS),又称为惯性 (Inertia)。
给定数据集 和簇数 ,k-means 寻找划分 和质心 ,使得:
其中 , 通常取欧几里得距离 (Euclidean Distance)。该优化问题是NP-hard的,实践中采用 Lloyd 算法寻找局部最优解。
Lloyd 算法:标准迭代步骤
步骤一:初始化 (Initialization)
实践中广泛采用 k-means++ 初始化:以与现有质心距离成比例的概率选择后续质心,期望近似比为 。
步骤二:分配步 (Assignment Step)
这等价于构建数据的 Voronoi 划分。
步骤三:更新步 (Update Step)
均值是使簇内平方距离和最小的唯一点。
步骤四:收敛判断
交替执行分配步和更新步,直至质心变化小于阈值或达到最大迭代次数。算法保证目标函数单调非增,在有限步内收敛到局部最优解。
距离度量与数据预处理
k-means 默认使用欧几里得距离。在应用于经济金融数据之前,通常对每个特征进行 Z-score 标准化或 Min-Max 缩放,以避免量纲较大的特征不成比例地支配距离计算。
选择簇数
- 肘部法 (Elbow Method):寻找 WCSS 关于 的曲线拐点。
- 轮廓系数 (Silhouette Score):,接近 1 表示良好聚类。
- Gap 统计量 (Gap Statistic):比较实际数据与参考随机数据的 WCSS。
收敛性与局限性
优势:计算效率高()、简单直观、可扩展至大规模数据集。
局限性:
- 预设 值,无自动修正机制。
- 球状簇假设,对非凸形状簇表现不佳。
- 对异常值敏感;k-medoids 更鲁棒。
- 仅保证局部最优,通常需多次随机初始化。
- 高维空间中距离区分能力下降,常需借助主成分分析 (PCA) 降维。
在经济学与金融学中的应用
- 客户细分:基于交易行为、收入水平等特征分组。
- 资产聚类:根据收益率、波动率等指标对股票或基金聚类。
- 宏观经济分组:基于多维发展指标对国家分组。
- 市场微观结构分析:对交易日不同时段、波动区间分类。
- 异常检测:与质心距离异常远的记录可能代表可疑活动。
扩展与变体
常见变体包括 k-means++(智能初始化)、k-medoids (PAM)(用实际数据点作为中心)、Fuzzy C-Means(软分配)、Bisecting k-means、Mini-Batch k-means(超大规模数据)和 Kernel k-means(非线性可分簇)。
总体而言,k-means 凭借计算效率、实现简易性和直观可解释性,依然是探索性数据分析和聚类建模的首选基线算法。