机器学习中的聚类

17 Mar 2025 | 6 分钟阅读

聚类或聚类分析是一种机器学习技术,用于对未标记的数据集进行分组。它可以被定义为“一种将数据点分组成不同簇的方法,簇由相似的数据点组成。具有可能相似性的对象保留在一个组中,该组与另一个组的相似性很小或没有相似性。”

它通过在未标记的数据集中找到一些相似的模式,如形状、大小、颜色、行为等,并根据这些相似模式的存在与否进行划分。

它是一种无监督学习方法,因此没有为算法提供监督,它处理的是未标记的数据集。

应用这种聚类技术后,每个簇或组都会被提供一个簇ID。机器学习系统可以使用此ID来简化对大型复杂数据集的处理。

聚类技术通常用于统计数据分析

注意:聚类在某种程度上类似于分类算法,但区别在于我们使用的数据集类型。在分类中,我们处理的是标记数据集,而在聚类中,我们处理的是未标记数据集。

示例:让我们用一个真实的商场例子来理解聚类技术:当我们去任何购物商场时,我们可以观察到用途相似的物品被分组在一起。例如,T恤被分在一区,裤子在另一区;同样,在蔬菜区,苹果、香蕉、芒果等被分在不同的区域,这样我们就能轻松找到东西。聚类技术的工作方式也是如此。聚类的其他例子还包括根据主题对文档进行分组。

聚类技术可以广泛应用于各种任务。该技术最常见的一些用途是:

  • 市场细分
  • 统计数据分析
  • 社交网络分析
  • 图像分割
  • 异常检测等

除了这些一般用途外,亚马逊在其推荐系统中使用它,根据过去的产品搜索历史提供推荐。Netflix也使用这种技术,根据用户的观看历史向其推荐电影和网络剧。

下图解释了聚类算法的工作原理。我们可以看到不同的水果被分成了几个具有相似属性的组。

Clustering in Machine Learning

聚类方法的类型

聚类方法大致分为硬聚类(数据点仅属于一个组)和软聚类(数据点也可以属于另一个组)。但还存在其他各种聚类方法。以下是机器学习中使用的主要聚类方法:

  1. 划分聚类
  2. 基于密度的聚类
  3. 基于分布模型的聚类
  4. 层次聚类
  5. 模糊聚类

划分聚类

这是一种将数据划分为非层次化组的聚类类型。它也被称为基于质心的方法。划分聚类最常见的例子是K-Means 聚类算法

在这种类型中,数据集被划分为k个组的集合,其中K用于定义预定义的组数。创建簇中心的方式是,一个簇的数据点之间的距离与另一个簇的质心相比是最小的。

Clustering in Machine Learning

基于密度的聚类

基于密度的聚类方法将高密度区域连接成簇,只要密集区域可以连接,就可以形成任意形状的分布。该算法通过识别数据集中的不同簇,并将高密度区域连接成簇来实现。数据空间中的密集区域被稀疏区域相互分隔。

如果数据集具有变化的密度和高维度,这些算法在聚类数据点时可能会遇到困难。

Clustering in Machine Learning

基于分布模型的聚类

在基于分布模型的聚类方法中,数据是根据数据集属于特定分布的概率进行划分的。分组是通过假设一些分布来完成的,通常是高斯分布

这种类型的例子是使用高斯混合模型(GMM)的期望最大化聚类算法

Clustering in Machine Learning

层次聚类

层次聚类可以作为划分聚类的替代方案,因为它不需要预先指定要创建的簇的数量。在这种技术中,数据集被划分为簇以创建树状结构,也称为树状图。可以通过在正确的级别切割树来选择观测值或任意数量的簇。这种方法最常见的例子是凝聚层次算法

Clustering in Machine Learning

模糊聚类

模糊聚类是一种软方法,其中一个数据对象可能属于多个组或簇。每个数据集都有一组成员系数,这取决于属于某个簇的隶属度。模糊C均值算法是这种聚类的例子;它有时也被称为模糊k均值算法。

聚类算法

聚类算法可以根据上面解释的模型进行划分。已经发布了不同类型的聚类算法,但只有少数被普遍使用。聚类算法基于我们正在使用的数据类型。例如,一些算法需要猜测给定数据集中的簇数,而另一些则需要找到数据集中观测值之间的最小距离。

这里我们主要讨论在机器学习中广泛使用的流行聚类算法:

  1. K-Means 算法: K-Means 算法是最流行的聚类算法之一。它通过将样本划分为具有相等方差的不同簇来对数据集进行分类。该算法中必须指定簇的数量。它速度快,计算量少,具有O(n)的线性复杂度。
  2. 均值漂移算法: 均值漂移算法试图在数据点的平滑密度中找到密集区域。它是一个基于质心模型的例子,其工作原理是更新质心的候选者,使其成为给定区域内点的中心。
  3. DBSCAN 算法: 它代表基于密度的含噪声应用空间聚类。它是一个基于密度模型的例子,类似于均值漂移,但有一些显著的优点。在该算法中,高密度区域被低密度区域分隔开。因此,可以找到任意形状的簇。
  4. 使用 GMM 的期望最大化聚类: 该算法可以作为 k-means 算法的替代方案,或者用于那些 K-means 可能会失败的情况。在 GMM 中,假设数据点是高斯分布的。
  5. 凝聚层次算法: 凝聚层次算法执行自下而上的层次聚类。在这种方法中,每个数据点最初被视为一个单独的簇,然后相继合并。簇的层次结构可以表示为树状结构。
  6. 近邻传播: 它与其他聚类算法不同,因为它不需要指定簇的数量。在这种方法中,每个数据点在数据点对之间发送消息,直到收敛。它的时间复杂度为O(N2T),这是该算法的主要缺点。

聚类的应用

以下是聚类技术在机器学习中一些常见的应用:

  • 在癌细胞识别中: 聚类算法被广泛用于癌细胞的识别。它将癌性和非癌性数据集划分为不同的组。
  • 在搜索引擎中: 搜索引擎也基于聚类技术工作。搜索结果是根据与搜索查询最接近的对象出现的。它通过将相似的数据对象分组到一个组中,该组远离其他不相似的对象来实现。查询的准确结果取决于所使用的聚类算法的质量。
  • 客户细分: 它用于市场研究,根据客户的选择和偏好对客户进行细分。
  • 在生物学中: 它在生物学领域用于使用图像识别技术对不同物种的植物和动物进行分类。
  • 在土地利用中: 聚类技术用于在地理信息系统(GIS)数据库中识别具有相似土地利用的区域。这对于发现特定土地应该用于何种目的,即它更适合哪种用途,可能非常有用。