三种流行的机器学习聚类方法以及何时使用哪种方法

三种流行的机器学习聚类方法以及何时使用哪种方法

无监督机器学习本身就非常强大,而聚类是迄今为止这类问题中最常见的表达方式。

本文简要介绍机器学习中三种最流行的聚类算法,以及每种算法最适合哪种情况。每个算法都有其特点,具体取决于您要完成的任务。

分层聚类

假设有一些你感兴趣的k clusters。您所知道的是,您可以将数据集分解为顶级的许多不同组,但您可能也对组内的组或这些组内的组感兴趣。为了获得这种结构,我们使用分层聚类。

我们从n个不同的点和我们想要发现的k个不同的聚类开始; 就我们而言,n = 4,k = 2。

三种流行的机器学习聚类方法以及何时使用哪种方法

首先将每个点视为自己的cluster。

三种流行的机器学习聚类方法以及何时使用哪种方法

然后,我们开始使用最接近的聚类将每个单点聚类合并为更大的聚类。我们找到距成对距离矩阵的最小距离 - 这只是每个cluster与每个其他cluster的距离的表。

这被初始化为每个点之间的欧几里德距离,但在此之后,我们切换到测量cluster距离的各种不同方式之一。

无论如何,我们开始合并最接近的clusters。假设我们知道x1和x3最接近。然后我们将这两个合并到一个新的cluster中,ca。

三种流行的机器学习聚类方法以及何时使用哪种方法

我们现在重新计算ca与其他聚类之间的距离,使用前面提到的方法。然后我们重复,一遍又一遍地合并我们的聚类,直到得到k个顶级聚类——在我们的示例中,是两个clusters。假设x2更接近于ca而不是x4。

三种流行的机器学习聚类方法以及何时使用哪种方法

我们现在有两个顶级聚类,cb和x4(请记住,每个点都以其自己的cluster开始)。我们现在可以搜索我们创建的树结构来搜索sub-clusters,在我们原来的2-D视图中看起来像这样:

三种流行的机器学习聚类方法以及何时使用哪种方法

基于密度的聚类

分层聚类有助于理解数据中的任何隐藏结构,但它有一个主要的缺陷。在上面显示的版本中,我们假设每个数据点都是相关的 - 在现实世界中几乎不是这种情况。

基于密度的聚类方法提供安全阀。我们只关注紧密堆积的点并假设其他一切都是噪声,而不是假设每个点都是某个cluster的一部分。

该方法需要两个参数:半径ε和邻域密度Σ。对于每个点,我们计算Neps(x) - 距离x最多ε的点数。如果Neps(x)≥Σ,不计算x,那么x被认为是核心点。如果一个点不是核心点,但它是核心点邻域的成员,那么它被认为是边界点。其他一切都被认为是噪音。

基于密度的聚类的最常见的实现之一,实际上,是基于密度的有噪声的应用程序的空间聚类,称为DBSCAN。DBSCAN的工作原理是跨不同的核心点运行连通分量算法。如果两个核心点共享边界点,或者核心点是另一个核心点邻域中的边界点,那么它们就是相同连通分量的一部分,这组成了一个聚类。

假设我们有一个相对较小的ε和一个相当大的Σ。我们可能会结束这样的聚类:

三种流行的机器学习聚类方法以及何时使用哪种方法

那两个孤独的点距离两个clusters很远,而且他们真的没有什么意义 - 所以它们只是噪音。

请注意,我们也能够以这种方式发现非凸簇(参见橙色弧)。很简约!

我们不需要为基于密度的聚类指定一些我们感兴趣的聚类 - 它会根据您的ε和Σ自动发现一些聚类。当您希望所有群集具有相似的密度时,这尤其有用。

K-Means聚类

分层聚类擅长于发现数据中的嵌入式结构,而基于密度的方法在寻找具有相似密度的未知数量的聚类方面表现优异。但是,两者都无法在整个数据集中找到“共识”。分层聚类可以将看起来很接近的聚类放在一起,但不考虑其他点的信息。基于密度的方法仅查看附近点的小邻域,同样无法考虑完整数据集。

这就是K-means聚类的用武之地。从某种意义上说,K-means考虑数据集中的每个点,并使用该信息在一系列迭代中进化聚类。

K-means通过选择k个中心点来工作。然后将这些均值用作其聚类的质心:任何最接近给定均值的点都将分配给该均值的聚类。

分配完所有点后,移动每个群集并获取其包含的所有点的平均值。这个新的“平均”点是聚类的新均值。

只需一遍又一遍地重复这两个步骤,直到点分配停止变化!

三种流行的机器学习聚类方法以及何时使用哪种方法

一旦点分配停止改变,该算法就被认为已经收敛

我们现在将拥有k个不同的聚类,每个聚类的质心更接近其cluster中的每个点,而不是任何其他质心。再次计算质心不会改变分配,所以停止。这就是K-means的全部内容,但它是一种非常强大的方法,可以在考虑整个数据集时查找已知数量的聚类。

有很多方法来初始化你的means。Forgy方法从数据中随机选择k个随机观测值并将其作为起点。Random Partition 方法将数据集中的每个点分配给随机cluster,然后根据这些点计算质心并恢复算法。

虽然K-means是一个NP难问题,但是启发式方法能够在多项式时间内找到对全局最优的适当近似,并且能够有效地处理大数据集,使其在某些情况下成为分层聚类的可靠选择。

聚类是一个奇怪的世界,拥有更奇怪的技术集合。这三种方法只是最流行的一些机器学习方法,但它们可以帮助您在机器学习数据中发现未知分组。集群在探索性数据分析、为其他分析寻找初始化点方面非常有用,而且部署起来也非常简单。明智地使用聚类可以为您的数据提供令人惊讶的见解。

相关推荐