Skip to content

聚类的概念

因为事先不知道类别,聚类算法是一种无监督学习算法。聚类是针对给定的样本,依据它们特征的相似度或距离,将其归并到若干个“类”或“簇”的数据分析问题。一个类是给定样本集合的一个子集。直观上讲,就是使同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大

聚类的目的

通过得到的类或簇发现数据的特点或对数据进行处理,在数据挖掘、模式识别等领域有着广泛的应用。

应用场景

  • 市场细分:通过用户属性或者用户的购买行为将客户群分成多个细分,每个细分设计不同的营销策略
  • 地震研究:聚类观测震源,识别危险区域
  • 房地产投资:根据房屋类型、价值和地理位置,对房屋进行分类,锁定投资范围
  • 生物分类:根据生物的特征进行属科分类
  • 知识/文件管理:根据文件信息进行分门别类管理
  • 反作弊:根据特征识别作弊行为

常见的聚类算法

  • 基于划分的聚类方法:k-means、k-means++、bi-kmeans、高斯混合聚类...
  • 基于密度的聚类方法:DBSCAN、OPTICS...
  • 基于层次的聚类方法:层次聚类、Birch...
  • 其它方法:谱聚类、核聚类、量子聚类、MeanShift、AP(AffinityPropagation)聚类...

基于划分的聚类方法需要事先指定簇类的数目或者聚类中心,通过反复迭代,直至最后达到"簇内的点足够近,簇间的点足够远"的目标。(算法效率较高,抗噪性能一般)
基于密度的聚类,是通过计算数据样本分布的疏密情况,将高密度区域的点划分为同一个类簇。通常情况下,密度聚类从样本密度的角度出来,来考查样本之间的可连接性,并基于可连接样本不断扩展聚类簇,以获得最终的聚类结果。(算法效率一般,抗噪较好)
基于层次的聚类,就是将数据集样本对象排列成聚类树,在指定的层次(切割点)进行切割,切割点时刻的聚类分组,就是聚类结果。(算法效率较差,抗噪较好)

常用聚类算法:https://zhuanlan.zhihu.com/p/104355127
https://zhuanlan.zhihu.com/p/138869531