数据科学中必须熟知的5种聚类算法

聚类算法是机器学习中涉及对数据进行分组的一种算法。在给定的数据集中,我们可以通过聚类算法将其分成一些不同的组。在理论上,相同的组的数据之间有相同的属性或者是特征,不同组数据之间的属性或者特征相差就会比较大。聚类算法是一种非监督学习算法,并且作为一种常用的数据分析算法在很多领域上得到应用。

在数据科学领域,我们利用聚类分析,通过将数据分组可以比较清晰的获取到数据信息。今天我们来看看,作为数据科学家需要知道并掌握的五种比较比较流行的聚类算法。

K-means聚类算法

K-means聚类算法可能是大家最为熟悉的聚类算法。它在许多的工业级数据科学和机器学习课程中都有被讲解。并且容易理解和实现相应功能的代码。比如以下的图片:

k-means聚类

k-means的优点是速度非常快,因为我们真正要做的就是计算点和组中心之间的距离;计算量少!因此,它具有线性复杂性o(n)。

另一方面,k-means有两个缺点。首先,您必须先确定聚类的簇数量。理想情况下,对于一个聚类算法,我们希望它能帮我们解决这些问题,因为它的目的是从数据中获得一些洞察力。k-均值也从随机选择聚类中心开始,因此它可能在算法的不同运行中产生不同的聚类结果。因此,结果可能不可重复,缺乏一致性。

Mean-Shift聚类

Mean-shift聚类是一个基于滑窗的算法,尝试找到数据点密集的区域。它是一个基于质心的算法,也就是说他的目标是通过更新中心点候选者定位每个组或类的中心点,将中心点候选者更新为滑窗内点的均值。这些候选滑窗之后会在后处理阶段被过滤,来减少临近的重复点,最后形成了中心点的集合和他们对应的组。查看下面的说明图。

单滑窗的Mean-Shift聚类

下图展示了所有滑动窗口从端到端的整个过程。每个黑色的点都代表滑窗的质心,每个灰色的点都是数据点。

Mean-Shift聚类的全部过程

与K-means聚类不同的是,Mean-Shift不需要选择聚类的数量,因为mean-shift自动发现它。这是一个很大的优点。事实上聚类中心向着有最大密度的点收敛也是我们非常想要的,因为这很容易理解并且很适合于自然的数据驱动的场景。缺点是滑窗尺寸/半径“r“的选择需要仔细考虑。

基于密度的带噪声的空间聚类的应用(DBSCAN)

DBSCAN是一个基于密度的聚类算法,与mean-shift相似,但是有几个值得注意的优点。查看下面这个花哨的图片,我们开始吧!

DBSCAN笑脸聚类

相较于其他聚类算法,DBSCAN提出了一些很棒的优点。首先,它根本不需要预置集群的数量。它还将离群值认定为噪声,不像mean-shift中仅仅是将它们扔到一个集群里,甚至即使该数据点的差异性很大也这么做。另外,这个算法还可以很好的找到任意尺寸核任意形状的集群。

SBSCAN最大的缺点是当集群的密度变化时,它表现的不像其他算法那样好。这是因为当密度变化时,距离的阈值ε和用于确定邻居点的minPoints也将会随之改变。这个缺点也会发生在很高为的数据中,因为距离阈值ε变得很难被估计。

基于高斯混合模型(GMM)的期望最大化(EM)聚类

k-means的一个主要缺点是它简单地使用了集群中心的平均值。通过下面的图片,我们可以看到为什么这不是最好的方式。在左手边,人眼可以很明显地看到,有两个半径不同的圆形星团以相同的平均值为中心。k-means不能处理这个问题,因为不同簇的平均值非常接近。当簇不是圆形时,k均值也会失效,这也是将均值用作簇中心的后果。

K-means不适用的case

高斯混合模型(gmms)具有更好的灵活性比K-means。使用GMMs,我们需要假设数据点是高斯分布,相对于环形的数据而言,这个假设的严格程度与均值相比弱很多。这样的话,我们有两个参数来描述簇的形状:均值和标准差。以二维为例,意味簇可以是任何一种椭圆形(因为我们有两个标准差在x和y方向)。因此,每个高斯分布会被分配到单一的聚类簇。

为了在每个聚类簇中找到这两个高斯参数(e.g均值和标准差),我们将使用的优化算法称为expectation–maximization(EM)。请看下面的图片,以说明将高斯拟合聚类簇。然后,我们可以处理EM聚类过程使用gmms。

使用GMMs的EM聚类

使用GMMS有两个关键优势。首先,GMMS在簇协方差方面比K均值灵活得多;由于标准偏差参数的存在,簇可以呈现任何椭圆形状,而不局限于圆形。k均值实际上是GMM的一个特例,其中每个簇的所有维协方差都接近于0。其次,由于GMM使用概率,因此每个数据点可以有多个集群。因此,如果一个数据点位于两个重叠集群的中间,我们可以简单地定义它的类,方法是说它属于类1的X%,属于类2的Y%。即GMMS支持混合成员。

凝聚层次聚类

凝聚层次聚类算法实际上分为2类:自上而下或自下而上。自下而上算法在一开始将每个数据点当作一个单个集群对待,然后逐步的合并(或凝聚)成对的集群,直到所有的集群被合并到一个集群中,这个集群包含所有的点。自下而上层次聚类因此被叫做层次凝聚的聚类或者HAC。这个聚类的层次被表示为一棵树(或者树状图)。树根是唯一的集群,他聚集了所有的样本,叶子是只有一个样本的集群。在接着看算法步骤之前,请查看下面的图示说明。

结论

以上就是数据科学家最应该了解的5中聚类算法!我们将以一个很漂亮的可视化来作为结束,可视化展示了这些算法和一些其算法表现得多么出色,这要归功于“ScikitLearn”库!

长按链接点击打开或点击【数据科学中必须熟知的5种聚类算法】:

AI研习社每日更新精彩内容,观看更多精彩内容:雷锋网雷锋网雷锋网

盘点图像分类的窍门深度学习目标检测算法综述生成模型:基于单张图片找到物体位置注意力的动画解析(以机器翻译为例)

等你来译:

如何在神经NLP处理中引用语义结构(Python)用MaskR-CNN检测空闲车位高级DQNs:利用深度强化学习玩吃豆人游戏深度强化学习新趋势:谷歌如何把好奇心引入强化学习智能体

THE END
1.R语言聚类分析:数据聚类算法在数据挖掘与机器学习领域,聚类分析是一种常用的无监督学习方法,其主要目的是将相似的数据点归为一类,从而揭示数据自身的内在结构。R语言作为一种功能强大的数据处理和分析工具,提供了多种聚类分析算法,如K均值聚类、层次聚类、DBSCAN等。本文将从 R 语言的角度介绍数据聚类算法的原理、常用方法和实践案例。 https://www.jianshu.com/p/36fab82dfab2
2.解释聚类分析模型群集中的某些条目具有意义,而其他条目看起来像是随机内容。 部分原因是 k 均值算法必须在群集之间形成任意边界。 所有群集中都有许多条目处于边缘位置,可以属于两个(或更多)群集。 为了减少此类干扰,我们可以按照到各自群集中心的距离对这些条目进行排序,然后查看离中心最近的条目。 https://docs.microsoft.com/zh-cn/learn/modules/unsupervised-learning-clustering/4-interpret-clustering-model
3.大数据最常用的算法主要有哪些1. K-均值聚类算法(K-Means Clustering):将数据集划分为k个簇,每个簇中的数据点与簇中心的距离最小化。常用于数据的无监督聚类。 2. 决策树算法(Decision Tree):通过对数据进行划分和树形结构的建立,预测离散或连续的输出变量。常用于分类和回归问题。 3. 随机森林算法(Random Forest):由多个决策树组成的集成https://wenku.baidu.com/view/faf61cac0366f5335a8102d276a20029bd6463e3.html
4.数据分析中的聚类算法有哪些非负矩阵分解算法是一种基于矩阵分解的聚类算法,它将数据矩阵分解为多个非负矩阵的乘积,每个非负矩阵表示一个潜在的特征空间。算法的基本思想是:先随机初始化多个非负矩阵,然后通过最小化原始数据矩阵和非负矩阵乘积之间的距离来更新非负矩阵,重复以上步骤直到收敛。 https://www.linkflowtech.com/news/1082
5.有哪些常用的聚类算法?无需设定K(可作为K-means聚类探索K的先验算法)对于K-means不擅长的非球形点处理的较好 [缺点]时间https://www.zhihu.com/question/44164453/answer/2751357060
6.聚类算法详解3、算法的数据输入属性:算法处理的结果与数据输入的顺序是否相关,也就是说算法是否独立于数据输入顺序;算法处理有很多属性数据的能力,也就是对数据维数是否敏感,对数据的类型有无要求。 4、聚类算法有哪些类 二、算法介绍 1、基于层次的方法(Hierarchical methods) https://blog.csdn.net/abc200941410128/article/details/78541273
7.机器学习(二)之无监督学习:数据变换聚类分析聚类算法(clustering algorithm)将数据划分成不同的组,每组包含相似的内容。 无监督学习的一个主要挑战就是评估算法是否学到了有用的东西。我们不知道正确的输出应该是什么,很难判断一个模型是否“表现很好”。,通常来说,评估无监督算法结果的唯一方法就是人工检查。 https://www.flyai.com/article/516
8.17个机器学习的常用算法在非监督式学习中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构。常见的应用场景包括关联规则的学习以及聚类等。常见算法包括Apriori算法以及k-Means算法。 3.半监督式学习: 在此学习方式下,输入数据部分被标识,部分没有被标识,这种学习模型可以用来进行预测,但是模型首先需要学习数据的内在结构以便合理https://aidc.shisu.edu.cn/78/aa/c13626a161962/page.htm
9.基于聚类和XGboost算法的心脏病预测1.2 聚类算法 本文引用的聚类算法是K-means 算法, K-means算法中的K代表类簇个数, means代表类簇内数据对象的均值(这种均值表示的是类簇中心)[3]. K-means算法是一种经典的聚类算法, 此算法以数据对象之间的距离作为聚类标准, 即数据对象之间距离越小则表示这类数据拥有较高的相似度, 就会朝着一个中心点聚集https://c-s-a.org.cn/html/2019/1/6729.html
10.8个超级经典的聚类算法腾讯云开发者社区DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,用于将高维数据分组为密度相连的、具有相似特征的多个数据簇。其原理如下: 选择参数:DBSCAN算法需要两个关键参数,即ε(eps)和 MinPts。其中,ε用于定义邻域的大小,MinPts是指在邻域内至少应该有的数据点数目。 https://cloud.tencent.com/developer/article/2430459
11.有监督的聚类算法有哪些有监督分类算法有哪些有监督的聚类算法有哪些 有监督分类算法有哪些 机器学习应用分析–有监督算法-分类算法 ###按学习方式分类: 监督学习 无监督学习 半监督学习 强化学习 ①监督学习 数据集中的每个样本有相应的“正确答案”, 根据这些样本做出预测, 分有两类: 回归问题和分类问题。https://blog.51cto.com/u_12228/10764841