聚类的方法、原理以及一般过程

1.聚类的定义

聚类(Clustering)是按照某个特定标准(如距离)把一个数据集分割成不同的类或簇,使得 同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。也即聚类后同一类的数据尽可能聚集到一起,不同类数据尽量分离。

聚类和分类的区别

  • 聚类(Clustering):是指把相似的数据划分到一起,具体划分的时候并不关心这一类的标签,目标就是把相似的数据聚合到一起,聚类是一种 无监督学习(Unsupervised Learning)方法。
  • 分类(Classification):是把不同的数据划分开,其过程是通过训练数据集获得一个分类器,再通过分类器去预测未知数据,分类是一种 监督学习(Supervised Learning)方法。

2.聚类的方法以及原理

数据聚类方法

数据聚类方法主要可以分为 划分式聚类方法(Partition-based Methods)基于密度的聚类方法(Density-based methods)层次化聚类方法(Hierarchical Methods)

聚类的方法、原理以及一般过程

划分式聚类方法

划分式聚类方法需要事先指定簇类的数目或者聚类中心,通过反复迭代,直至最后达到”簇内的点足够近,簇间的点足够远”的目标。经典的划分式聚类方法有 k-means及其变体 k-means++bi-kmeanskernel k-means等。

经典 k-means 源代码,下左图是原始数据集,通过观察发现大致可以分为4类,所以取k=4,测试数据效果如下右图所示。

聚类的方法、原理以及一般过程

基于密度的方法

k-means算法对于凸性数据具有良好的效果,能够根据距离来讲数据分为球状类的簇,但对于非凸形状的数据点,就无能为力了,当 k-means算法在环形数据的聚类时,我们看看会发生什么情况。

聚类的方法、原理以及一般过程

层次化聚类方法

前面介绍的几种算法确实可以在较小的复杂度内获取较好的结果,但是这几种算法却存在一个 链式效应的现象,比如:A与B相似,B与C相似,那么在聚类的时候便会将A、B、C聚合到一起,但是如果A与C不相似,就会造成聚类误差,严重的时候这个误差可以一直传递下去。为了降低 链式效应,这时候层次聚类就该发挥作用了。

层次聚类算法 (hierarchical clustering) 将数据集划分为一层一层的 clusters,后面一层生成的 clusters 基于前面一层的结果。层次聚类算法一般分为两类:

  • Agglomerative 层次聚类:又称自底向上(bottom-up)的层次聚类,每一个对象最开始都是一个 cluster,每次按一定的准则将最相近的两个 cluster 合并生成一个新的 cluster,如此往复,直至最终所有的对象都属于一个 cluster。这里主要关注此类算法。
  • Divisive 层次聚类: 又称自顶向下(top-down)的层次聚类,最开始所有的对象均属于一个 cluster,每次按一定的准则将某个 cluster 划分为多个 cluster,如此往复,直至每个对象均是一个 cluster

3.聚类的一般过程

  1. 数据准备:特征标准化和降维
  2. 特征选择:从最初的特征中选择最有效的特征,并将其存储在向量中
  3. 特征提取:通过对选择的特征进行转换形成新的突出特征
  4. 聚类:基于某种距离函数进行相似度度量,获取簇
  5. 聚类结果评估:分析聚类结果,如 距离误差和(SSE)

聚类方法比较:

聚类的方法、原理以及一般过程

参考文档:

  1. 常用聚类算法综述 – 知乎

  2. 常用聚类算法 – 知乎

Original: https://blog.csdn.net/pearl8899/article/details/126457302
Author: 凝眸伏笔
Title: 聚类的方法、原理以及一般过程

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/614931/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球