DezemingFamily系列书和小册子因为是电子书,所以可以很方便地进行修改和重新发布。如果您获得了DezemingFamily的系列书,可以从我们的网站[https://dezeming.top/]找到最新版。对书的内容建议和出现的错误欢迎在网站留言。
聚类算法已经广泛应用于多种学科,尤其是信号分析、模式识别等领域。在很多情况下,我们并不知道样本的类别,但是可以通过一些聚类方法,将样本进行划分,然后对划分好的每个类别单独进行分析。
聚类的方法有很多种,例如通过阈值进行一刀切的方法、根据离种子点的距离分类的方法等,我们可以大致区分为“很容易想到的方法”以及“不太容易想到的方法”。这些方法并不会有明显的好坏之分,对应不同的场景我们可以选择不同的方法。
为了更容易理解,聚类中的“簇(cluster)”我们一般会描述为“类”,即分类为几个“簇”。本书会介绍常用的聚类算法,并分析算法的优劣,以及给出Python代码示例。
第一版我会给出K-Means++、DBSCAN以及GMM-EM聚类算法的详细代码构建过程。
K-Means++作为最经典和基础的聚类算法,一般是一定要掌握的;DBSCAN算法因为可以对一些比较复杂的数据分布进行聚类(例如同心圆、弧线),因此也会详细介绍代码实现过程;基于期望最大化的高斯混合模型因为具有一定的理论意义,尤其是涉及概率模型,所以也进行详细的代码构建讲解。
其余算法因为功能和流程的相似性,读者对照已有代码自行构建也会比较容易;CFSFDP算法虽然比较麻烦,但伪代码描述非常详细,因此构建也不会非常困难。等日后有需要,或者根据读者反映的情况来对其他算法的代码实践部分进行补充。
本书的数据和源码会发布在DezemingFamily的网站上,需要将.pdf文件改为.zip方可解压并使用。尽管提供了源码,这里还是希望读者能够自己动手敲一遍代码,多加几个调试语句,来分析输出结果以及各个环节的数据类型和格式,这样才能更好地理解各种聚类算法。
本书内容见:聚类算法与代码实战