醋醋百科网

Good Luck To You!

机器学习中常见的聚类算法有哪些?

聚类算法是一种无监督学习方法,它可以根据数据对象之间的相似度或距离,将它们划分为不同的簇或类别,使得同一簇内的对象尽可能相似,不同簇间的对象尽可能不同。

机器学习中的聚类算法有很多种,根据不同的划分原则和优化目标,可以分为以下几类:

  • 划分式聚类算法 (Partition-based Methods) :这类算法需要事先指定簇的个数或者聚类中心,然后通过迭代优化,使得每个簇内的数据对象到其聚类中心的距离之和最小。常见的划分式聚类算法有 K-meansK-means++bi-kmeans高斯混合模型 等。
  • 层次式聚类算法 (Hierarchical Methods) :这类算法不需要指定簇的个数,而是通过逐层合并或分割数据对象,形成一个层次结构的聚类结果。常见的层次式聚类算法有 凝聚层次聚类分裂层次聚类BIRCH 等。
  • 基于密度的聚类算法 (Density-based Methods) :这类算法根据数据对象在空间中的密度分布来划分簇,能够处理任意形状的数据,并且对噪声和异常点有较强的鲁棒性。常见的基于密度的聚类算法有 DBSCANOPTICSMean Shift 等。
  • 基于网格的聚类算法 (Grid-based Methods) :这类算法将数据空间划分为有限个网格单元,然后根据每个网格单元内的数据密度来划分簇,具有较高的计算效率和可扩展性。常见的基于网格的聚类算法有 STINGCLIQUEWaveCluster 等。
  • 基于模型的聚类算法 (Model-based Methods) :这类算法假设数据对象服从某种概率模型,然后根据模型参数来划分簇,能够提供对数据结构和分布的解释。常见的基于模型的聚类算法有 EM谱聚类模糊聚类 等。

下面介绍其中三种常用且具有代表性的聚类算法:K-means,DBSCAN和谱聚类。

K-means 聚类

K-means 聚类是一种最经典和最简单的划分式聚类算法。它需要事先给定簇的个数 k ,然后通过迭代优化,使得每个簇内的数据对象到其聚类中心的距离之和最小。它的基本思想是:首先随机选择 k 个数据对象作为初始的聚类中心,然后计算每个对象到各个聚类中心的距离,将每个对象分配给距离它最近的聚类中心所属的簇,接着重新计算每个簇的聚类中心,重复这个过程直到聚类中心不再变化或者达到最大迭代次数 。

DBSCAN 聚类

DBSCAN基本思想是:对于每个数据对象 x ,以 x 为圆心,以给定半径为半径画一个圆形邻域,如果该邻域内包含至少 M 个其他对象,则称 x 为核心对象 (core object) ,并且该邻域内的所有对象属于同一个簇;如果 x 不是核心对象,但是它的邻域内包含某个核心对象,则称 x 为边界对象 (border object) ,并且它属于那个核心对象所在的簇;如果 x 既不是核心对象,也不是边界对象,则称 x 为噪声对象 (noise object) ,并且它不属于任何簇。

谱聚类

谱聚类是一种基于模型的聚类算法。它将数据集看作一个图,每个数据对象是图中的一个节点,每两个节点之间有一条边连接,边的权重表示节点之间的相似度。然后通过计算图的拉普拉斯矩阵 (Laplacian matrix) 的特征值和特征向量,来划分图中的节点,使得同一簇内的节点相似度高,不同簇间的节点相似度低。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言