走进聚类的世界:用日常例子解释复杂的算法概念
目录
一、划分算法(Partitioning Algorithms)
二、层次算法(Hierarchical Algorithms)
三、密度算法(Density-based Algorithms)
四、方格算法(Grid-based Algorithms)
五、模型算法(Model-based Algorithms)
总结对比表
一句话口诀
一、划分算法(Partitioning Algorithms)
核心思想:直接将数据集分成若干组(簇),每组内部尽可能相似,组间尽可能不同。
典型算法:K-means、PAM(K-medoids)。
例子:
「学校分班」
- 老师希望把50个学生分成3个班(预设K=3)。
- 先随机选3名学生作为“班代表”(初始质心)。
- 其他学生根据与班代表的距离(如身高差、成绩差)选择最近的班加入。
- 更新班代表的位置为该班学生的平均身高/成绩。
- 重复步骤3-4,直到学生不再变动。
特点:高效且适合球形数据,但需提前指定分几组,且对异常值敏感。
二、层次算法(Hierarchical Algorithms)
核心思想:通过树状图(Dendrogram)自底向上或自顶向下合并/分割数据,形成层次结构。
典型算法:聚合式层次聚类(Agglomerative)、分裂式层次聚类(Divisive)。
例子:
「动物分类学研究」
- 先比较所有动物(如蚂蚁、蜜蜂、鸟类)的基因相似度,找到最相似的两类(如蚂蚁和蜜蜂)合并。
- 继续合并次相似的组合(如合并后的“昆虫类”和“鸟类”)。
- 重复此过程,直到所有动物被合并成一棵大树。
- 根据研究需求,剪枝树干决定最终分类(如分为昆虫纲、脊椎动物纲)。
特点:无需预设组数,可视化强,但计算量大,不适合大数据集。
三、密度算法(Density-based Algorithms)
核心思想:基于数据点的“密度”(周围邻居数量)进行聚类,能识别任意形状的簇和非噪声点。
典型算法:DBSCAN、OPTICS、HDBSCAN。
例子:
「夜市摊位分布分析」
- 定义“邻居”:距离某摊位5米内的人流量≥10人。
- 找出所有满足条件的“核心摊位”(如奶茶店、小吃摊),它们周围聚集大量顾客。
- 将靠近核心摊位的边缘摊位(如冰激凌摊)归入对应簇。
- 孤立的无邻居摊位(如角落里的手工艺品摊)标记为异常值。
特点:自动识别噪声,适合非球形簇(如长条形人群),但参数敏感(如邻居半径)。
四、方格算法(Grid-based Algorithms)
核心思想:将数据空间划分为网格单元,基于单元密度合并相邻单元形成簇。
典型算法:STING、CLIQUE、WaveCluster。
例子:
「图书馆书籍分类」
- 将图书馆按“主题维度”(科幻/历史)、“价格维度”(<50元/50-100元)、“借阅次数维度”(高频/低频)划分成网格单元。
- 统计每个单元的书籍数量:
- (科幻, <50元, 高频)单元有10本书;
- (科幻, <50元, 低频)单元只有2本。
- 合并相邻且书籍数量≥5的单元(如将(科幻, <50元, 高频)和(科幻, 50-100元, 高频)合并为“热门科幻书区”)。
特点:处理高维数据高效,但依赖网格粒度设置,灵活性较低。
五、模型算法(Model-based Algorithms)
核心思想:假设数据由某种概率模型生成,通过拟合模型参数实现聚类。
典型算法:高斯混合模型(GMM)、隐马尔可夫模型(HMM)。
例子:
「天气模式分类」
- 假设某城市天气由以下模式混合:
- 模式A:晴天(概率40%,气温20-25℃,湿度30%);
- 模式B:雨天(概率30%,气温15-18℃,湿度80%);
- 模式C:多云(概率30%,气温18-22℃,湿度50%)。
- 通过历史气象数据训练模型,确定每种模式的占比和参数。
- 新数据(如气温22℃、湿度60%)会被归类到最可能的模式(如多云)。
特点:可解释性强,但依赖数据分布假设(如正态分布)。
总结对比表
算法类型 | 典型场景 | 优点 | 缺点 |
---|---|---|---|
划分算法 | 学校分班、客户分群 | 计算快,适合球形数据 | 需预设K值,对噪声敏感 |
层次算法 | 生物分类、市场细分探索 | 可视化直观 | 计算慢,不适合大数据 |
密度算法 | 社交网络分析、异常检测 | 自动识别噪声 | 参数敏感 |
方格算法 | 高维数据聚类(如文本、图像) | 处理速度快 | 网格粒度难确定 |
模型算法 | 成绩分段、天气预测 | 理论完备,可解释性强 | 依赖数据分布假设 |
一句话口诀
- 划分算法:先分堆再调优(K-means)。
- 层次算法:从小类到大类(树状图)。
- 密度算法:抱团找邻居(DBSCAN)。
- 方格算法:网格分区统计(图书馆)。
- 模型算法:数据背后找规律(天气模式)。