聚类算法概述


聚类方法是最有用的无监督机器学习方法之一。这些方法用于发现数据样本之间的相似性以及关系模式,然后根据特征将这些样本聚类成具有相似性的组。

聚类很重要,因为它决定了当前未标记数据之间的内在分组。他们基本上对数据点做出一些假设以构成它们的相似性。每个假设都将构建不同但同样有效的集群。

例如,下图显示了集群系统将不同集群中的相似数据分组在一起:

Clustering

集群形成方法


簇不必以球形形式形成。以下是其他一些集群形成方法:

基于密度

在这些方法中,簇形成为密集区域。这些方法的优点是它们具有良好的准确性以及合并两个聚类的良好能力。前任。基于密度的噪声应用空间聚类 (DBSCAN)、识别聚类结构的排序点 (OPTICS) 等。

基于分层

在这些方法中,簇被形成为基于层次结构的树型结构。它们有两个类别,即凝聚(自下而上的方法)和分裂(自上而下的方法)。前任。使用代表的聚类(CURE),使用层次结构的平衡迭代减少聚类(BIRCH)等。

分区

在这些方法中,通过将对象分成 k 个簇来形成簇。集群的数量将等于分区的数量。前任。 K-means,基于随机搜索 (CLARANS) 对大型应用程序进行聚类。

Grid

在这些方法中,簇形成为网格状结构。这些方法的优点是在这些网格上完成的所有聚类操作都是快速的,并且与数据对象的数量无关。前任。统计信息网格 (STING),Quest 中的聚类 (CLIQUE)。

测量聚类性能


关于 ML 模型的最重要考虑因素之一是评估其性能,或者你可以说模型的质量。在监督学习算法的情况下,评估我们模型的质量很容易,因为我们已经为每个示例设置了标签。

另一方面,在无监督学习算法的情况下,我们并没有那么幸运,因为我们处理的是未标记的数据。但是我们仍然有一些指标可以让从业者了解集群中根据算法发生的变化。

在深入研究此类指标之前,我们必须了解这些指标仅评估模型之间的比较性能,而不是衡量模型预测的有效性。以下是我们可以部署在聚类算法上来衡量模型质量的一些指标:

轮廓分析


轮廓分析用于通过测量聚类之间的距离来检查聚类模型的质量。它基本上为我们提供了一种在 剪影得分 .该分数衡量一个集群中的每个点与相邻集群中的点的接近程度。

剪影分数分析


Silhouette 分数的范围是 [-1, 1]。其分析如下:

  • +1 Score : 近+1 剪影得分 表示样本远离其相邻簇。

  • 0 Score : 0 剪影得分 表示样本位于或非常接近分隔两个相邻聚类的决策边界。

  • -1 Score &减 -1 剪影得分 表示样本已分配到错误的簇。

剪影分数的计算可以使用以下公式来完成:

?????????? ?????=(?−?)/??? (?,?)

这里,? = 到最近聚类中的点的平均距离

并且,? = 到所有点的平均集群内距离。

戴维斯-布尔丁指数

DB 索引是执行聚类算法分析的另一个很好的指标。借助数据库索引,我们可以了解关于聚类模型的以下几点:

  • 天气集群彼此之间是否间隔良好?

  • 簇的密度是多少?

我们可以借助以下公式计算 DB 索引:

$$DB=\frac{1}{n}\displaystyle\sum\limits_{i=1}^n max_{j\neq{i}}\left(\frac{\sigma_{i}+\sigma_{j }}{d(c_{i},c_{j})}\right)$$

这里,? = 聚类数

σ i = 簇 ? 中所有点到簇质心 ?? 的平均距离。

数据库索引越少,聚类模型越好。

邓恩指数

它与数据库索引的作用相同,但有以下几点不同:

  • Dunn 索引只考虑最坏的情况,即靠近在一起的集群,而 DB 索引考虑集群模型中所有集群的分散和分离。

  • Dunn 索引随着性能的提高而增加,而 DB 索引在集群间隔良好且密集时变得更好。

我们可以借助以下公式计算 Dunn 指数:

$$D=\frac{min_{1\leq i <{j}\leq{n}}P(i,j)}{mix_{1\leq i < k \leq n}q(k)}$$

这里,?,?,? = 集群的每个索引

? = 簇间距离

q = 簇内距离

ML 聚类算法的类型


以下是最重要和最有用的 ML 聚类算法:

K-means 聚类

该聚类算法计算质心并迭代,直到我们找到最佳质心。它假设集群的数量是已知的。它也被称为平面聚类算法。通过算法从数据中识别出的簇数用 K-means 中的“K”表示。

均值漂移算法

它是用于无监督学习的另一种强大的聚类算法。与 K-means 聚类不同,它不做任何假设,因此它是一种非参数算法。

层次聚类

它是另一种无监督学习算法,用于将具有相似特征的未标记数据点组合在一起。

我们将在接下来的章节中详细讨论所有这些算法。

聚类的应用


我们可以发现聚类在以下领域很有用:

数据汇总和压缩 : 聚类被广泛应用于我们需要对数据进行汇总、压缩和归约的领域。示例是图像处理和矢量量化。

协作系统和客户细分 : 由于聚类可以用于寻找相似产品或同类用户,因此可以用于协同系统和客户细分领域。

作为其他数据挖掘任务的关键中间步骤 : 聚类分析可以生成一个紧凑的数据汇总,用于分类、检验、假设生成;因此,它也是其他数据挖掘任务的关键中间步骤。

动态数据中的趋势检测 : 聚类也可以用于动态数据中的趋势检测,通过对相似趋势进行各种聚类。

社交网络分析 : 聚类可以用于社交网络分析。这些示例是在图像、视频或音频中生成序列。

生物数据分析 : 聚类也可以用来对图像、视频进行聚类,因此可以成功地用于生物数据分析。