无监督机器学习本身就非常强大,而聚类是迄今为止这类问题中最常见的表达方式 。
本文简要介绍机器学习中三种最流行的聚类算法,以及每种算法最适合哪种情况 。每个算法都有其特点,具体取决于您要完成的任务 。
分层聚类
假设有一些你感兴趣的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考虑数据集中的每个点,并使用该信息在一系列迭代中进化聚类 。
推荐阅读
- 小米音响小爱设置方法是什么
- 鳝鱼土池养殖方法是什么
- 汽车eco正确使用方法是什么
- ex泰兰特是什么组成的
- 职业生涯的重要环节和流程是什么
- 7月19日是什么星座
- 8月22日是什么星座
- 3月14号是什么星座
- 10月27日是什么星座
- 农村养的猫是什么品种