当前位置: 首页 > article >正文

走进聚类的世界:用日常例子解释复杂的算法概念

目录

​一、划分算法(Partitioning Algorithms)​

​二、层次算法(Hierarchical Algorithms)​

​三、密度算法(Density-based Algorithms)​

​四、方格算法(Grid-based Algorithms)​

​五、模型算法(Model-based Algorithms)​

​总结对比表

​一句话口诀


一、划分算法(Partitioning Algorithms)​

核心思想:直接将数据集分成若干组(簇),每组内部尽可能相似,组间尽可能不同。
典型算法:K-means、PAM(K-medoids)。

例子:​
​「学校分班」​

  1. 老师希望把50个学生分成3个班(预设K=3)。
  2. 先随机选3名学生作为“班代表”(初始质心)。
  3. 其他学生根据与班代表的距离(如身高差、成绩差)选择最近的班加入。
  4. 更新班代表的位置为该班学生的平均身高/成绩。
  5. 重复步骤3-4,直到学生不再变动。
    特点:高效且适合球形数据,但需提前指定分几组,且对异常值敏感。

二、层次算法(Hierarchical Algorithms)​

核心思想:通过树状图(Dendrogram)自底向上或自顶向下合并/分割数据,形成层次结构。
典型算法:聚合式层次聚类(Agglomerative)、分裂式层次聚类(Divisive)。

例子:​
​「动物分类学研究」​

  1. 先比较所有动物(如蚂蚁、蜜蜂、鸟类)的基因相似度,找到最相似的两类(如蚂蚁和蜜蜂)合并。
  2. 继续合并次相似的组合(如合并后的“昆虫类”和“鸟类”)。
  3. 重复此过程,直到所有动物被合并成一棵大树。
  4. 根据研究需求,剪枝树干决定最终分类(如分为昆虫纲、脊椎动物纲)。
    特点:无需预设组数,可视化强,但计算量大,不适合大数据集。

三、密度算法(Density-based Algorithms)​

核心思想:基于数据点的“密度”(周围邻居数量)进行聚类,能识别任意形状的簇和非噪声点。
典型算法:DBSCAN、OPTICS、HDBSCAN。

例子:​
​「夜市摊位分布分析」​

  1. 定义“邻居”:距离某摊位5米内的人流量≥10人。
  2. 找出所有满足条件的“核心摊位”(如奶茶店、小吃摊),它们周围聚集大量顾客。
  3. 将靠近核心摊位的边缘摊位(如冰激凌摊)归入对应簇。
  4. 孤立的无邻居摊位(如角落里的手工艺品摊)标记为异常值。
    特点:自动识别噪声,适合非球形簇(如长条形人群),但参数敏感(如邻居半径)。

四、方格算法(Grid-based Algorithms)​

核心思想:将数据空间划分为网格单元,基于单元密度合并相邻单元形成簇。
典型算法:STING、CLIQUE、WaveCluster。

例子:​
​「图书馆书籍分类」​

  1. 将图书馆按“主题维度”(科幻/历史)、“价格维度”(<50元/50-100元)、“借阅次数维度”(高频/低频)划分成网格单元。
  2. 统计每个单元的书籍数量:
    • (科幻, <50元, 高频)单元有10本书;
    • (科幻, <50元, 低频)单元只有2本。
  3. 合并相邻且书籍数量≥5的单元(如将(科幻, <50元, 高频)和(科幻, 50-100元, 高频)合并为“热门科幻书区”)。
    特点:处理高维数据高效,但依赖网格粒度设置,灵活性较低。

五、模型算法(Model-based Algorithms)​

核心思想:假设数据由某种概率模型生成,通过拟合模型参数实现聚类。
典型算法:高斯混合模型(GMM)、隐马尔可夫模型(HMM)。

例子:​
​「天气模式分类」​

  1. 假设某城市天气由以下模式混合:
    • 模式A:晴天(概率40%,气温20-25℃,湿度30%);
    • 模式B:雨天(概率30%,气温15-18℃,湿度80%);
    • 模式C:多云(概率30%,气温18-22℃,湿度50%)。
  2. 通过历史气象数据训练模型,确定每种模式的占比和参数。
  3. 新数据(如气温22℃、湿度60%)会被归类到最可能的模式(如多云)。
    特点:可解释性强,但依赖数据分布假设(如正态分布)。

总结对比表

算法类型典型场景优点缺点
划分算法学校分班、客户分群计算快,适合球形数据需预设K值,对噪声敏感
层次算法生物分类、市场细分探索可视化直观计算慢,不适合大数据
密度算法社交网络分析、异常检测自动识别噪声参数敏感
方格算法高维数据聚类(如文本、图像)处理速度快网格粒度难确定
模型算法成绩分段、天气预测理论完备,可解释性强依赖数据分布假设

一句话口诀

  • 划分算法:先分堆再调优(K-means)。
  • 层次算法:从小类到大类(树状图)。
  • 密度算法:抱团找邻居(DBSCAN)。
  • 方格算法:网格分区统计(图书馆)。
  • 模型算法:数据背后找规律(天气模式)。

http://www.kler.cn/a/574064.html

相关文章:

  • npm install 报错 no such file or directory 的解决方法
  • GoLang的select是什么?在什么时候场景下用
  • Unity多Pass渲染与GPU Instancing深度优化指南
  • OpenCV计算摄影学(16)调整图像光照效果函数illuminationChange()
  • 浅谈Manus智能体与其他AI助手(如ChatGPT、Claude等)的优势
  • 【C++进阶学习】第一讲——继承(下)---深入挖掘继承的奥秘
  • JS—组成:2分钟掌握什么是ECMAScript操作,什么是DOM操作,什么是BOM操作
  • 利用Python爬虫获取17网(17zwd)商品详情:实战指南
  • MySQL学习笔记(3)InnoDB存储引擎对MVCC的实现
  • 计算机毕业设计SpringBoot+Vue.js青年公寓服务平台(源码+文档+PPT+讲解)
  • 深度学习中TorchScript原理、作用浅析(Trace/Script)
  • MySQL事务,函数,性能,索引
  • 【GoTeams】-2:项目基础搭建(下)
  • BGP服务器主要是指什么?
  • 硬件学习【1】74HC165D-并行信号输入-串行输出
  • VSCode 配置优化指南:打造极致高效的前端开发环境
  • 系统架构设计师—软件工程基础篇—软件开发方法
  • 【无标题】养老护理初级考题抽取——2大题抽1+7小题抽2-共有432种可能。
  • 【LeetCode 热题 100】438. 找到字符串中所有字母异位词 | python 【中等】
  • go语言因为前端跨域导致无法访问到后端解决方案