加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

深度剖析:数据科学家需懂的5种聚类算法

发布时间:2018-04-27 15:30:37 所属栏目:教程 来源:李佳惠
导读:【资讯】聚类是一种涉及数据点分组的机器学习技术。给定一组数据点,我们可以使用聚类算法将每个数据点分类到一个特定的组中。理论上,属于同一组的数据点应具有相似的属性和特征,而不同组中的数据点应具有高度不同的属性和特征。聚类是无监督学习的一种

  DBSCAN的主要缺点是,当密度不同时,性能不如其他。这是因为当密度变化时,用于识别邻近点的距离阈值ε和minPoints的设置将随着族群而变化。对于非常高维数据也会出现这种缺点,因为距离阈值ε会变得再次难以估计。

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

  K-Means的主要缺点之一就是它对于聚类中心的平均值进行简单de使用。通过查看下面的图片,我们可以明白为什么这不是最好的方法。在左侧,人眼看起来非常明显,有两个不同半径的圆形星团,以相同的平均值为中心。 K-Means不能处理这个,因为这些集群的平均值是非常接近的。 K-Means在集群不是圆形的情况下也失败了,这是使用均值作为集群中心的结果。  

深度剖析:数据科学家需懂的5种聚类算法
▲K-Means的两个失败案例

  高斯混合模型(GMMs)比K-Means更灵活。对于GMM,我们假设数据点是高斯分布的,这是一个限制较少的假设,而不是用均值来表示它们是循环的。这样,我们有两个参数来描述群集的形状:均值和标准差!以二维为例,这意味着这些集群可以采取任何类型的椭圆形(因为我们在x和y方向都有标准偏差)。因此,每个高斯分布被分配给单个集群。

  为了找到每个群集的高斯参数(例如均值和标准差),我们将使用称为期望最大化(EM)的优化算法。请看下面的图表,作为适合群集的高斯图的例证。然后我们可以继续进行使用GMM的期望最大化聚类过程。

  深度剖析:数据科学家需要了解的5种聚类算法

  1.我们首先选择的数量(如K-Means),然后随机初始化每个集群的高斯分布参数。可以通过快速查看数据来尝试为初始参数提供一个很好的猜测。但需要注意,从上图可以看出,这并不是100%必要的。

  2.给定每个群集的这些高斯分布,计算每个数据点属于特定群集的概率。一个点越靠近高斯的中心,它越可能属于该群。这应该是直观的,因为使用高斯分布,我们假设的是大部分数据更靠近集群的中心。

  3.基于这些概率,我们为高斯分布计算一组新的参数,使得我们最大化群内数据点的概率。我们使用数据点位置的加权来计算这些新参数,其中权重是属于该特定群集的数据点的概率。为了用视觉的方式解释这个,我们可以看看上面的图片,特别是黄色的群集。分布从第一次迭代随机开始,但是我们可以看到大部分黄点都在分布的右侧。当我们计算一个按概率加权的和时,即使中心附近有一些点,它们大部分都在右边。因此,分配的均值自然就会接近这些点。我们也可以看到,大部分要点都是“从右上到左下”。因此,标准偏差改变,以创建一个更适合这些点的椭圆,以最大化概率加权的总和。

  4.步骤2和3重复迭代,直到收敛,分布从迭代到迭代的变化不大。

  使用GMM确实有两个关键的优势。首先,GMM在聚类协方差上比K-Means灵活得多。由于标准偏差参数,集群可以呈现任何椭圆形状,而不是被限制为圆形。K-Means实际上是GMM的一个特殊情况,其中每个群集的协方差在所有维度都接近0。其次,由于GMM使用概率,每个数据点可以有多个群集。因此,如果一个数据点位于两个重叠的集群的中间,我们可以简单地定义它的类,将其归类为1类,Y类归属于2类。例如,GMM支持混合成员。

  凝聚层次聚类

  分层聚类算法实际上分为两类:自上而下或自下而上。自下而上的算法首先将每个数据点视为一个单一的聚类,然后连续地合并(或聚合)成对的聚类,直到所有的聚类都合并成一个包含所有数据点的聚类。因此,自下而上的分层聚类被称为分层凝聚聚类或HAC。这个集群的层次表示为树(或树状图)。树的根是收集所有样本的唯一聚类,叶是仅具有一个样本的聚类。在进入算法步骤之前,请查看下面的图解。

  我们首先将每个数据点视为一个单一的聚类,即如果我们的数据集中有X个数据点,那么我们有X个聚类。然后,我们选择一个度量两个集群之间距离的距离度量。作为一个例子,我们将使用平均关联,它将两个集群之间的距离定义为第一个集群中的数据点与第二个集群中的数据点之间的平均距离。

深度剖析:数据科学家需要了解的5种聚类算法

  ▲凝聚层次聚类

  1.在每次迭代中,我们将两个集群合并成一个集群。这两个要组合的组被选为那些平均联系最小的组。根据我们选择的距离度量,这两个群集之间的距离最小,因此是最相似的,应该结合起来。

  2.重复步骤2直到我们到达树的根,即我们只有一个包含所有数据点的聚类。通过这种方式,我们可以选择最终需要多少个集群,只需选择何时停止组合集群,即停止构建树时。

  3.分层聚类不需要我们指定聚类的数量,我们甚至可以选择哪个数量的聚类看起来最好,因为我们正在构建一棵“树”。另外,该算法对距离度量的选择不敏感,所有算法都能很好的工作,而与其他聚类算法,距离度量的选择是至关重要的。分层聚类方法的一个特别好的用例是基础数据具有层次结构,并且想要恢复层次结构; 其他聚类算法不能做到这一点。与K-Means和GMM的线性复杂性不同,层次聚类的这些优点是以较低的效率为代价的,因为它具有O(n 3)的时间复杂度。

  深度剖析:数据科学家需要了解的5种聚类算法

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!