在数据科学中,我们可以通过聚类算法,查看数据点属于哪些组,并且从这些数据中获得一些有价值的信息。今天,我们一起来看看数据科学家需要了解的 5 种流行聚类算法以及它们的优缺点。
一、K 均值聚类
K-Means 可能是最知名的聚类算法了。在数据科学或机器学习课程中都有过它的介绍。K-Means 的代码也非常容易理解和实现。请查看下面的图片:
当然,K-Means 也有两个缺点。首先,你必须选择有分类组的数目(如聚为 3 类,则 K=3)。这并不能忽略,理想情况下,我们希望它使用聚类算法来帮助我们理解这些数据,因为它的重点在于从数据中获得一些有价值的发现。由于 K-means 算法选择的聚类中心是随机的(即初始化是随机的),因此它可能会因为类数不同而运行算法中产生不同的聚类结果。因此,结果可能不可重复且缺乏一致性。相反,其他集群方法更一致。
K-Medians 是与 K-Means 有关的另一种聚类算法,不同之处在于我们使用组的中值向量来重新计算组中心点。该方法对异常值不敏感(因为使用中值),但对于较大的数据集运行速度就要慢得多,因为在计算中值向量时,需要在每次迭代时进行排序。
二、Mean-Shift 聚类
平均移位聚类是基于滑动窗口的算法,试图找到密集的数据点区域。这是一种基于质心的算法,意味着目标是定位每个组 / 类的中心点,通过更新中心点的候选点作为滑动窗口内点的平均值来工作。然后在后处理(相对‘预处理’来说的)阶段对这些候选窗口进行滤波以消除近似重复,形成最终的中心点集及其相应的组。请查看下面的图片:
Mean-Shift 聚类用于单个滑动窗口
下面显示了所有滑动窗口从头到尾的整个过程的说明。每个黑点代表滑动窗口的质心,每个灰点代表一个数据点。
Mean-Shift 聚类的整个过程
与 K 均值聚类相比,不需要选择聚类数量,因为均值偏移可以自动发现。这是一个巨大的优势。聚类中心向最大密度点聚合的结果也是非常令人满意的,因为它的理解比较符合数据驱动的规律,且十分直观。缺点是窗口大小 / 半径 r 的选择是非常重要的,换句话说半径的选择决定了运行结果。
三、基于密度的噪声应用空间聚类(DBSCAN)
DBSCAN 是一种基于密度的聚类算法,类似于 mean-shift,但其拥有一些显着的优点。 看看下面的另一个花哨的图形,让我们开始吧!(图片过大,请点击链接观看)
http://suo.im/3r9b56
http://suo.im/1JQmbi
http://suo.im/12XwkZ
DBSCAN 的主要缺点是,当簇的密度不同时,DBSCAN 的性能不如其他组织。 这是因为当密度变化时,用于识别邻近点的距离阈值ε和 minPoints 的设置将随着群集而变化。 对于非常高维的数据也会出现这种缺点,因为距离阈值ε再次难以估计。
四、使用高斯混合模型(GMM)的期望最大化(EM)聚类
K-Means 的主要缺点之一是其使用了集群中心的平均值。 通过查看下面的图片,我们可以明白为什么这不是选取聚类中心的最佳方式。 在左侧,人眼看起来非常明显的是,有两个半径不同的圆形星团以相同的平均值为中心。K-Means 无法处理这个问题,因为这些集群的平均值非常接近。K-Means 在集群不是圆形的情况下也会出错,这也是因为使用均值作为集群中心的原因。
K-Means 的两个失败案例
高斯混合模型(GMMs)比 K-Means 更具灵活性。对于 GMM,我们假设数据点是高斯分布的。这是一个限制较少的假设,而不是用均值来表示它们是循环的。这样,我们有两个参数来描述群集的形状,均值和标准差。以二维数据为例,这意味着群集可以采取任何类型的椭圆形(因为我们在 x 和 y 方向都有标准偏差)。 因此,每个高斯分布被分配给单个集群。
为了找到每个群集的高斯参数(例如平均值和标准偏差),我们将使用期望最大化(EM)的优化算法。 看看下面的图表,作为适合群集的高斯图的例证。然后我们可以继续进行使用 GMM 的期望最大化聚类过程
使用 GMM 的 EM 聚类
使用 GMM 有两个关键优势。首先 GMM 比 K-Means 在群协方面更灵活。由于标准偏差参数,集群可以采取任何椭圆形状,而不是限于圆形。K 均值实际上是 GMM 的一个特例,其中每个群的协方差在所有维上都接近 0。其次,由于 GMM 使用概率,每个数据点可以有多个群。因此,如果一个数据点位于两个重叠的簇的中间,我们可以简单地定义它的类,将其归类为类 1 的概率为百分之 x,类 2 的概率为百分之 y。
五、凝聚层次聚类
分层聚类算法实际上分为两类:自上而下或自下而上。自下而上算法首先将每个数据点视为单个群集,然后连续合并(或聚合)成对的群集,直到所有群集合并成包含所有数据点的单个群集。自下而上的层次聚类因此被称为分层凝聚聚类或 HAC。该簇的层次结构被表示为树(或树状图)。树的根是收集所有样本的唯一聚类,叶是仅有一个样本的聚类。在进入算法步骤之前,请查看下面的图解。
凝聚层次聚类
分层聚类不需要我们指定聚类的数量,我们甚至可以选择哪个数量的聚类看起来最好,因为我们正在构建一棵树。另外,该算法对距离度量的选择不敏感; 他们都倾向于工作同样好,而与其他聚类算法,距离度量的选择是至关重要的。分层聚类方法的一个特别好的用例是基础数据具有层次结构并且您想要恢复层次结构; 其他聚类算法无法做到这一点。与 K-Means 和 GMM 的线性复杂性不同,这种层次聚类的优点是以较低的效率为代价,因为它具有 O(n3)的时间复杂度。
结论
数据科学家应该知道的这 5 个聚类算法!我们将期待一些其他的算法的执行情况以及可视化,敬请期待 Scikit Learn!
博客原址:
https://towardsdatascience.com/the-5-clustering-algorithms-data-scientists-need-to-know-a36d136ef68