K-Means算法概述
K-Means(K均值)是一种无监督学习算法,用于将数据划分为 (K) 个簇(Cluster)。其核心目标是:
使同一簇内的数据尽可能相似,不同簇之间尽可能不同。
本质是一个基于距离的聚类优化问题。
1. 流程图(Mermaid)
flowchart TD
A[初始化K个中心] --> B[分配样本到最近中心]
B --> C[更新簇中心]
C --> D{中心是否变化}
D -- 是 --> B
D -- 否 --> E[结束,输出聚类结果]
2. 算法特点
2.1 优点
- 计算效率高:时间复杂度约 (O(nKt))
- 实现简单,易于工程化
- 对大规模数据友好(可用于分布式,如Spark)
2.2 缺点
- 必须指定 (K)
- 对初始值敏感(可能陷入局部最优)
- 对异常值(outlier)敏感
- 只适用于“凸形簇”(球状分布)
3.典型应用场景
- 用户画像(用户分群)
- 异常检测(简单场景)
- 图像压缩(颜色聚类)
- 推荐系统(用户/商品聚类)