该教程记录了我从一个聚类算法小白学习谱聚类算法的过程,在开始学习之前,请确保你了解下面的知识:
- 线性代数矩阵的相关性质
- 导数的相关知识
- 欧式距离
- 图的基本知识
如果你学过上面的知识但是忘记了也没关系,在后面使用该知识点的过程中会简要讲解一下,你只要确保你看完了能回忆起来就好。
1. 什么聚类算法?
聚类就是对大量未知标注的数据集,按数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的数据相似度较小,是无监督学习1的一种。说白点,就是给一群点,然后叫你把相似的点分为同一类。下图就是一个简单的例子,被分为同一类的数据点用同一种颜色被标识出来。
2. 谱聚类算法
常用的聚类方法有很多,比如说k-means算法,基于密度聚类算法,基于网格聚类算法,谱聚类算法等,本教程将介绍谱聚类算法。传统的聚类方法,如k-means算法,基于密度聚类算法,基于网格聚类算法等,在对凸形样本聚类效果较好,但是对于任意形状的聚类算法精度不高;而谱聚类算法,不仅能够在任意样本空间进行聚类,而且能够收敛于全局最优,很好地解决了非块状和非凸数据的聚类问题。
等等,非块状和非凸数据
是什么意思?我们以下面的图为例子,上图是谱聚类算法的一种实现,下图是k-means算法的实现。k-means算法是计算两个数据点之间的距离,距离近的就会被分配到同一个聚类中。可以看到,同一个圆环两端的数据点因为距离比较远,所以在k-means算法中不会被分配到同一个聚类中,而谱聚类算法却能将同一个圆环内的数据点分配到一起。以我们的经验来说,谱聚类算法的分配更合理。
哈!由此我们可以看出谱聚类算法是多么优秀的一想技术了吧,在教程的第二部分,我们将给出谱聚类算法的目标函数表示,求解这个目标函数,将得到我们的聚类分析结果。
无监督学习是机器学习的一种(共四种)。无监督学习中使用的数据是没有标记过的,即不知道输入数据对应的输出结果是什么。我们的目的就是让机器来读取数据然后进行分析寻找数据的模型和规律最后生成输出。 ↩︎