摘要#

聚类是一类典型的无监督学习方法,其目标是在没有标签信息的情况下,根据数据之间的相似性将样本自动划分为不同的簇结构。与监督学习不同,聚类不依赖先验标注,而是通过数据本身的内在结构进行模式发现,因此在用户分群、图像压缩、异常检测等场景中具有重要应用价值。本章围绕聚类的基本思想、经典算法及其扩展方法展开,帮助读者构建从理论到实践的完整聚类分析体系。

本章首先介绍聚类算法的基本思想,说明“相似样本应归为一类”的核心原则,并以KMeans算法为代表,系统讲解其算法流程、数学原理以及K值选择方法。通过示例代码,读者可以快速掌握KMeans在实际数据上的应用方式。同时,本章从优化角度出发,推导KMeans的目标函数,并分别解释簇中心与样本分配矩阵的求解过程,使读者能够理解该算法本质上是一个交替优化问题。

在工程实现部分,本章提供从零实现KMeans与KMeans++的完整过程,通过随机初始化与改进初始化策略的对比,使读者理解初始化方式对聚类结果稳定性的影响。同时,本章引入加权KMeans模型,扩展传统算法在不同特征重要性场景下的适用能力,使聚类方法更加贴近真实业务需求。

在评估与模型选择方面,本章系统介绍聚类的外部与内部评价指标,包括聚类纯度、兰德系数、轮廓系数以及Calinski-Harabasz指数等,使读者能够在无监督场景下合理评估模型效果。此外,本章进一步讨论K值选择问题,从肘部法与轮廓系数法两个角度分析如何确定最优聚类数,提高模型的稳定性与解释性。

最后,本章扩展介绍基于密度的DBSCAN算法与基于层次的聚类方法(HCA),并详细讲解Single-Link、Complete-Link与Ward方法的原理与实现,使读者能够掌握不同聚类思想之间的本质差异。通过本章学习,读者不仅能够熟练使用主流聚类算法解决实际问题,还能够理解不同聚类范式背后的几何结构与优化逻辑,为后续复杂数据分析与无监督学习任务奠定基础。

本章内容

11.1 聚类算法的思想

经过前面一系列的介绍,我们已经接触了多种回归和分类算法,并且这些算法有一个共同的特点,也就是它们都是有监督的学习算法。接下来,我们将开始学习一类经典的无监督机器学习算法——聚类算法。如图11-1所示便是本章内容的学习路线图,整体包含有5种聚 …

11.2 Kmeans聚类算法

在本节中,我们首先介绍了Kmeans聚类算法的基本思想以及如何使用sklearn来完成整个建模过程;然后介绍了Kmeans聚类算法的原理,即聚类的整个迭代过程,并对整个过程中的样本状态进行了可视化;最后简单介绍了K值的选取原则,这部分内容将 …

11.3 Kmeans算法求解

到目前为止,相信各位读者已经对Kmeans聚类算法的过程有了一个清楚的了解,但是我们应该如何从数学的角度来对其进行描述呢?正如我们在介绍线性回归时所讲解的那样,对于聚类算法来讲我们同样应该找到一个目标函数来对聚类结果的好坏进行刻画。在前面我 …

11.4 从零实现Kmeans聚类算法

通过11.3节内容的介绍,我们已经知道了Kmeans聚类算法中两个关键未知变量的计算公式,接下来需要完成的就是对其进行编码实现。在11.2.3节中我们介绍过,聚类算法的步骤主要分为4个步骤,其中其中第4个步骤为循环迭代过程,因此整个聚类过程 …

11.5 Kmeans++聚类算法

在前面几节内容中,我们介绍了什么是聚类算法,并且还介绍了聚类算法中应用最为广泛的Kmeans聚类算法。从Kmeans聚类算法的原理可知,Kmeans在正式聚类之前首先需要完成的就是初始化K个簇中心。同时,也正是因为这个原因使Kmeans聚类 …

11.6 聚类外部评价指标

经过前面几节内容的介绍,相信各位读者对于聚类算法已经有了一定的了解。不过正如之前介绍的分类算法模型一样,对于聚类算法来讲同样也会通过一些评价指标来衡量聚类结果的优与劣。在聚类任务中,常见的评价指标有纯度(Purity)、兰德系数(Rand …

11.7 加权Kmeans聚类算法

在前面几节内容中,我们首先介绍了Kmeans聚类算法的原理,然后介绍了一种基于Kmeans进行改进的Kmeans++聚类算法,该算法的改进点在于依次初始化K个簇中心,最大程度上使不同的簇中心彼此之间相距较远,从而避免了各个簇中心出现在同一簇 …

11.8 聚类内部评价指标

在第11.6节内容中,我们详细介绍了聚类算法中几种常见的评价指标,包括纯度(准确率)、精确率、召回率、兰德系数和F值等。虽然这些评价指标都能很好的评估聚类结果的优劣,但是它们都有着一个共同的强使用条件,那就是需要知道训练样本的真实标签 …

11.10 基于密度的聚类算法

在前面几节内容中,我们陆续介绍了3种常见聚类算法的原理与实现过程,包括原始的Kmeans聚类算法、Kmeans++聚类算法以及基于特征权重的加权Kmeans聚类算法 ,并且这3种都算是基于Kmeans框架下的聚类算法,也就是说它们本质上解决 …

11.11 基于层次的聚类算法

经过前面几节内容的介绍,我们已经清楚了Kmeans、Kmeans++、基于权重的加权Kmeans和DBSCAN这4种聚类算法的原理与实现。总的来说这4种聚类算法各有千秋,分别都能在一些独特的场景中发挥自己的优势。在接下来的这篇文章中,我们将 …