Machine Learning With Python 简明教程

Clustering Algorithms - Overview

Introduction to Clustering

聚类方法是最有用的无监督 ML 方法之一。这些方法用于查找数据样本之间的相似性以及关系模式,然后将这些样本聚类到基于特征相似性的组中。

聚类很重要,因为它确定了当前未标记数据之间的内在分组。它们在基本上对数据点做出了一些关于其相似性的假设。每一项假设都会构建不同但同样有效的聚类。

例如,以下是显示聚类系统将不同聚类中相似类型的数据分组在一起的图表:

clustering

Cluster Formation Methods

聚类不必以球形形式形成。以下是一些其他聚类形成方法:

Density-based

在这些方法中,聚类被形成为稠密区域。这些方法的优点在于,它们既具有良好的准确性,又有合并两个聚类的良好能力。例如,带噪声的基于密度的空间聚类应用 (DBSCAN),用于识别聚类结构的排序点 (OPTICS) 等。

Hierarchical-based

在这些方法中,聚类被基于分层形成为树型结构。它们有两个类别,即凝聚(自底向上的方法)和分裂(自顶向下的方法)。例如,使用代表的聚类 (CURE),使用层次结构的平衡迭代缩小聚类 (BIRCH) 等。

Partitioning

在这些方法中,聚类是由将各个对象分配到 k 个聚类中而形成的。聚类数将等于分区数。例如,K 均值,基于随机搜索聚类大型应用程序 (CLARANS)。

Grid

在这些方法中,聚类被形成为网格状结构。这些方法的优点在于,在这些网格上进行的所有聚类操作都很快,并且与数据对象的数量无关。例如,统计信息网格 (STING),寻求聚类 (CLIQUE)。

Measuring Clustering Performance

有关 ML 模型最重要的考虑因素之一是评估其性能或可以称之为模型的质量。在监督学习算法的情况下,对模型质量的评估很简单,因为我们已经为每个示例都贴上了标签。

另一方面,在无监督学习算法的情况下,由于我们处理的是未标记数据,因此我们没有那么幸运。但我们仍然有一些指标可以让从业者深入了解群集的变化,具体取决于算法。

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

Silhouette Analysis

轮廓分析用于检查聚类模型的质量,方法是测量聚类之间的距离。它基本上为我们提供了一种方法来评估聚类数量等参数,这得益于 Silhouette score 。此分数衡量一个聚类中的每个点与相邻聚类中的点的距离。

Analysis of Silhouette Score

轮廓分数的范围为 [-1, 1]。它的分析如下 -

  1. +1 Score − 在 +1 Silhouette score 附近指示样本远离其相邻聚类。

  2. 0 Score − 0 Silhouette score 表示样本位于或非常靠近分隔两个相邻聚类的决策边界。

  3. -1 Score &minusl -1 Silhouette score 表示已将样本分配到错误的聚类。

轮廓分数的计算可以使用以下公式进行 −

silhouette 分数=(p-q)/max (p,q)

此处,p = 到最近聚类中点的平均距离

并且,q = 到所有点的平均聚类内距离。

Davis-Bouldin Index

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

  1. 聚类是否彼此相距较远?

  2. 聚类有多密集?

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

此处,n = 聚类数

σi = 聚类 i 中所有点到聚类质心 ci 的平均距离。

DB 索引越少,聚类模型越好。

Dunn Index

它的工作原理与 DB 索引相同,但有以下几点不同:

  1. Dunn 索引仅考虑最坏的情况,即彼此接近的簇,而 DB 索引则考虑聚类模型中所有簇的分散和分离。

  2. Dunn 索引会随着性能的提高而增大,而 DB 索引则会在簇分布均匀且密集时变得更好。

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

其中,𝑖,𝑗,𝑘 = 每个簇的索引

𝑝 = 簇间距离

q = 簇内距离

Types of ML Clustering Algorithms

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

K-means Clustering

此聚类算法计算质心并迭代直至找到最佳质心。它假定已知聚类数。它也被称为平面聚类算法。算法从数据识别的聚类数在 K 均值中表示为“K”。

Mean-Shift Algorithm

这是无监督学习中使用的另一种强有力的聚类算法。与 K 均值聚类不同,它不作任何假设,因此它是一种非参数算法。

Hierarchical Clustering

这是另一种无监督学习算法,用于对具有相似特征的未标记数据点进行分组。

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

Applications of Clustering

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

Data summarization and compression − 聚类被广泛用于我们要求数据汇总、压缩和减少的领域。例如图像处理和矢量量化。

Collaborative systems and customer segmentation − 由于聚类可以用于查找类似产品或同类用户,因此它可以用于协作系统和客户细分领域。

Serve as a key intermediate step for other data mining tasks − 聚类分析可以生成用于分类、测试、假设生成的数据的紧凑摘要;因此,它也作为其他数据挖掘任务的关键中间步骤。

Trend detection in dynamic data − 通过创建具有类似趋势的不同聚类,聚类还可以用于动态数据中的趋势检测。

Social network analysis − 聚类可以用于社交网络分析。例如,在图像、视频或音频中生成序列。

Biological data analysis − 聚类还可以用于生成图像和视频聚类,因此可以成功地用于生物数据分析。