数据科学家需要知道的聚类算法有哪些?开课吧
聚类是一种机器学习技术,涉及数据点的分组。给定一组数据点,我们可以使用聚类算法将每个数据点分类到特定的组中。理论上,同一组中的数据点应该具有相似的属性或特征,而不同组中的数据点应该具有高度不同的属性或特征。聚类是一种无监督学习方法,是统计数据分析中应用最广泛的一种技术。
数据科学家需要知道的聚类算法有哪些?开课吧
数据科学家需要知道的5种流行的聚类算法如下:
K-Means聚类
K-Means可能是最知名的聚类算法,它在很多介绍性的数据科学和机器学习课程中都会讲到。它在代码中很容易理解和实现!
K-Means的优点是非常快,因为我们所做的只是计算点到群中心的距离,很少的计算!因此,它具有线性复杂度O(n)。
Mean-Shift 聚类
Mean shift聚类是一种基于滑动窗口的算法,它试图找到数据点的密集区域。它是一种基于中心的算法,其目标是定位每个组/类的中心点,其工作原理是将中心点更新为滑动窗口内点的平均值。然后在后处理阶段对这些候选窗口进行筛选,以消除几乎重复的内容,形成最终的中心点集及其对应的组。
与K-means聚类相比,不需要选择簇的数量,因为均值漂移会自动发现这一点。这是一个巨大的优势。簇中心收敛于最大密度点的事实也是非常可取的,因为它非常直观,易于理解,并且很好地符合自然数据驱动。缺点是窗口大小/半径“r”的选择可能非常重要。
数据科学家需要知道的聚类算法有哪些?开课吧
基于密度的噪声应用空间聚类(DBSCAN)
DBSCAN是一种基于密度的聚类算法,类似于均值漂移。与其他聚类算法相比,DBSCAN具有很大的优势。首先,它根本不需要设置簇的数量,它还可以将异常值识别为噪声,这与均值漂移不同,均值漂移只是将异常值扔进一个簇,即使数据点非常不同。此外,它能够很好地找到任意大小和任意形状的簇。
基于混合高斯模型的EM算法
K-Means的一个主要缺点是它很原始的使用平均值作为簇的中心。高斯混合模型(GMMs)给了我们比K-Means更大的灵活性。
层次聚类
层次聚类算法实际上分为两类:自顶向下和自底向上。自底向上算法在开始时将每个数据点视为单个簇,然后依次合并两个簇,直到所有簇合并到包含所有数据点的单个簇中。因此,自底向上的层次聚类被称为分层聚类或HAC。簇的层次结构用树(或树状图)表示。树根是收集所有样本的唯一簇,叶子是只有一个样本的簇。