数据科学家必须了解的六大聚类算法:带你发现数据之美

感谢机器之心:https://www.jiqizhixin.com/articles/the-6-clustering-algorithms-data-scientists-need-to-know

在机器学习中,无监督学习一直是我们追求的方向,而其中的聚类算法更是发现隐藏数据结构与知识的有效手段。目前如谷歌新闻等很多应用都将聚类算法作为主要的实现手段,它们能利用大量的未标注数据构建强大的主题聚类。本文从最基础的 K 均值聚类到基于密度的强大方法介绍了 6 类主流方法,它们各有擅长领域与情景,且基本思想并不一定限于聚类方法。

本文将从简单高效的

  1. K 均值聚类开始,依次介绍
  2. 均值漂移聚类、
  3. 基于密度的聚类、
  4. 利用高斯混合和最大期望方法聚类、
  5. 层次聚类
  6. 适用于结构化数据的图团体检测。

我们不仅会分析基本的实现概念,同时还会给出每种算法的优缺点以明确实际的应用场景。

 

聚类是一种包括数据点分组的机器学习技术。给定一组数据点,我们可以用聚类算法将每个数据点分到特定的组中。理论上,属于同一组的数据点应该有相似的属性和/或特征,而属于不同组的数据点应该有非常不同的属性和/或特征。聚类是一种无监督学习的方法,是一种在许多领域常用的统计数据分析技术。


 

 

K-Means(K 均值)聚类

K-Means 可能是最知名的聚类算法。它是很多入门级数据科学和机器学习课程的内容。在代码中很容易理解和实现!

  1. 首先,我们选择一些类/组,并随机初始化它们各自的中心点。为了算出要使用的类的数量,最好快速查看一下数据,并尝试识别不同的组。中心点是与每个数据点向量长度相同的位置,在上图中是「X」。

  2. 通过计算数据点与每个组中心之间的距离来对每个点进行分类,然后将该点归类于组中心与其最接近的组中。

  3. 根据这些分类点,我们利用组中所有向量的均值来重新计算组中心。

  4. 重复这些步骤来进行一定数量的迭代,或者直到组中心在每次迭代后的变化不大。你也可以选择随机初始化组中心几次,然后选择看起来提供了最佳结果的运行。

K-Means 的优势在于速度快,因为我们真正在做的是计算点和组中心之间的距离:非常少的计算!因此它具有线性复杂度 O(n)。

另一方面,K-Means 有一些缺点。首先,你必须选择有多少组/类。这并不总是仔细的,并且理想情况下,我们希望聚类算法能够帮我们解决分多少类的问题,因为它的目的是从数据中获得一些见解。K-means 也从随机选择的聚类中心开始,所以它可能在不同的算法中产生不同的聚类结果。因此,结果可能不可重复并缺乏一致性。其他聚类方法更加一致。

K-Medians 是与 K-Means 有关的另一个聚类算法,除了不是用均值而是用组的中值向量来重新计算组中心。这种方法对异常值不敏感(因为使用中值),但对于较大的数据集要慢得多,因为在计算中值向量时,每次迭代都需要进行排序。

k-means算法优缺点分析 
- 优点: 
  算法简单易实现; 
- 缺点: 
  需要用户事先指定类簇个数KK; 
  聚类结果对初始类簇中心的选取较为敏感; 
  容易陷入局部最优; 
  只能发现球型类簇;


 

posted @ 2019-01-05 21:07  慕云深  阅读(514)  评论(0)    收藏  举报