新闻热线:15379009688,0931-4809111   新闻邮箱:zglzw2012@163.com  QQ:1538783093  

设为首页

您当前的位置 : 中国兰州网  >  数码科技  >  产业新闻

Must Know! 数据科学家们必须知道的5种聚类算法


稿源:雷锋网 编辑:庄泽帆 发布时间:2018-03-13 15:05      【选择字号:

  聚类是一种关于数据点分组的机器学习技术。给出一组数据点,我们可以使用聚类算法将每个数据点分类到特定的组中。理论上,同一组中的数据点应具有相似的属性或特征,而不同组中的数据点应具有相当不同的属性或特征(即类内差异小,类间差异大)。聚类是一种无监督学习方法,也是一种统计数据分析的常用技术,被广泛应用于众多领域。

  在数据科学中,我们可以通过聚类算法,查看数据点属于哪些组,并且从这些数据中获得一些有价值的信息。今天,我们一起来看看数据科学家需要了解的5种流行聚类算法以及它们的优缺点。

  一、K均值聚类

  K-Means可能是最知名的聚类算法了。在数据科学或机器学习课程中都有过它的介绍。K-Means的代码也非常容易理解和实现。请查看下面的图片:

  开始,我们先选取一些类型或者组类,分别随机初始化它们的中心点。要计算出使用的类的数量,最好快速查看数据并尝试识别不同的分组。中心点是与每个数据点向量长度相同的向量,并且是上图中的‘X’s’。

  每一个数据点,是通过计算该点与每一组中的点之间的距离,来进行分类的,然后将该点归类到距离中心最近的组。

  基于这些分类的点,我们通过求取每一组中所有向量的均值,重复计算每一组的中心点。

  重复上述步骤,直到每一组的中心点不再发生变化或者变化不大为止。你也可以选择对组中心点进行多次随机初始化,选择运行效果最好的即可。

  由于我们所做的只是计算点和组中心之间的距离,计算量较小,因此K-Means的一大优点就是运行速度非常快。所以它具有线性复杂度O(n)。

  当然,K-Means也有两个缺点。首先,你必须选择有分类组的数目(如聚为3类,则K=3)。这并不能忽略,理想情况下,我们希望它使用聚类算法来帮助我们理解这些数据,因为它的重点在于从数据中获得一些有价值的发现。由于K-means算法选择的聚类中心是随机的(即初始化是随机的),因此它可能会因为类数不同而运行算法中产生不同的聚类结果。因此,结果可能不可重复且缺乏一致性。相反,其他集群方法更一致。

  K-Medians是与K-Means有关的另一种聚类算法,不同之处在于我们使用组的中值向量来重新计算组中心点。该方法对异常值不敏感(因为使用中值),但对于较大的数据集运行速度就要慢得多,因为在计算中值向量时,需要在每次迭代时进行排序。

  二、Mean-Shift聚类

  平均移位聚类是基于滑动窗口的算法,试图找到密集的数据点区域。这是一种基于质心的算法,意味着目标是定位每个组/类的中心点,通过更新中心点的候选点作为滑动窗口内点的平均值来工作。然后在后处理(相对‘预处理’来说的)阶段对这些候选窗口进行滤波以消除近似重复,形成最终的中心点集及其相应的组。请查看下面的图片:

  Mean-Shift聚类用于单个滑动窗口

  为了解释平均偏移,我们将考虑像上图那样的二维空间中的一组点。我们从以C点(随机选择)为中心并以半径r为核心的圆滑动窗口开始。平均偏移是一种爬山算法,它涉及将这个核迭代地转移到每个步骤中更高密度的区域,直到收敛。

[1]  [2]  [3]  下一页  尾页