联系我们

AI 101.

什么是k均值聚类?

mm

更新

 on

k均值聚类是一个无人监督的学习算法,并从所有内容中无人监督的学习算法,k均值聚类可能是最广泛使用的,这归功于其电力和简单。 K-MEARE集群如何完全工作?

简短的答案是K-Meary集群工作创建参考点(质心)对于所需数量的类,然后将数据点分配给类群集基于哪个参考点最接近。虽然这是K-Means集群的快速定义,但让我们花一些时间进入K-Means聚类,并为其运作方式更好地直接。

定义群集

在我们检查用于执行K-means群集的确切算法之前,让我们花一点时间来定义群集。

群集只是项目组,群集只是将物品放入这些组中。在里面数据科学感觉,聚类算法旨在做两件事:

  • 确保群集中的所有数据点尽可能彼此相似。
  • 确保不同群集中的所有数据点尽可能彼此不同。

群集算法基于相似性的某些度量的共同组合在一起。这通常是通过在数据集中找到不同可能组的“质心”来完成,但不完全是。有多种不同的聚类算法,但所有聚类算法的目标是相同的,以确定数据集的内部的组。

k均值聚类

K-means群集是最古老,最常用的聚类算法之一,它基于矢量量化。摘要作为原点的空间中有一个点,然后从原点绘制到数据集中的所有数据点的vectors。

通常,k-means聚类可以分解为五个不同的步骤:

  • 将所有实例放入子集中,其中子集的数量等于K.
  • 找到新创建的群集分区的平均点/质心。
  • 基于这些质心,将每个点分配到特定群集。
  • 计算从每一点到质心的距离,并将点分配给从质心的距离最小的群集。
  • 分配给群集的点后,找到群集的新心。

重复上述步骤,直到训练过程结束。

在初始阶段,将质心放置在数据点中的某个位置。
Photo: Weston.pace via wikimedia commons, GNU Free Documentation License (//commons.wikimedia.org/wiki/File:K_Means_Example_Step_1.svg)

或者,在放置质心之后,我们可以设想K-means聚类,以在两个不同阶段之间来回交换:标记数据点和更新质心。

In the second step, a distance metric like Euclidean distance is used to calculate which centroid a given point is closest to, and then the points are assigned to that centroid’s class. Photo: Weston.pace via Wikimedia Commons, GNU Free Doc License (//commons.wikimedia.org/wiki/File:K_Means_Example_Step_2.svg)

在数据点标记阶段,将每个数据点分配一个标签,该标签将其放置在属于最近质心的群集中。最近的质心通常使用平方欧几里德距离确定,但是可以根据送入聚类算法的数据类型,例如曼哈顿距离,余弦和Jaccard距离等其他距离度量。

In the third step, centroid are moved to the average of all the data points. The classes are then reassigned. Photo: Weston.pace via Wikiemedia Commons, CC SA 3.0 (//commons.wikimedia.org/wiki/File:K_Means_Example_Step_3.svg)

在质心更新步骤中,通过查找当前包含在群集中的所有数据点之间的平均距离来计算质心。

如何选择“k”的正确值

考虑到K-means群集是一个无监督算法,并且提前知道的类数,您如何决定k的适当数量的类/右值?

选择右k值的一种技术称为“肘部技术“。肘部技术包括运行K-Means聚类算法,用于一系列不同的K值并使用精度度量,通常是平方误差的总和,以确定K的k值是否提供最佳结果。通过计算集群的质心与该群集中的数据点之间的平均距离来确定平方误差的总和。

术语“肘部技术”来自的事实是,当您对k的不同值绘制SSE时,所得到的线图通常具有“弯头”形状,其中SSE迅速减小k的k,但随后水平。在这种条件下,位于肘部的K值是K的最佳值,因为在该值之后迅速减少回报。

迷你批量k均值聚类

随着数据集的增长更大,计算时间也增长。基本K-means聚类可能需要很长时间才能在大规模数据集上运行时完成,因此,已进行调整以使算法降低算法的空间和时间成本。

迷你批量k均值聚类是k-merical聚类的变体所考虑的数据集的大小被提升。普通的K-means群集一次在整个数据集/批次上运行,而Mini-Batch K-Meanse群集将数据集分解为子集。 Mini-Batches从整个数据集随机采样,每个新迭代都会选择新的随机样本,并利用以更新质心的位置。

在迷你批量k-means聚类中,通过迷你批量值和学习率的组合更新群集。学习率在迭代中减少,并且它是放置在特定群集中的数据点数的倒数。降低学习率的效果是降低新数据的影响,并且在几次迭代之后,群集没有变化。

迷你批量K-MERIAL聚类的有效性的研究结果表明它可以成功减少群质量略微折衷的计算时间。

K-means聚类的应用

K-means聚类可以安全地用于数据点可以分段为不同的群体/类的情况。以下是k平均聚类的常用例子的一些例子。

K-means群集可以应用于文档分类,根据主题,标签,单词使用,元数据和其他文档功能等功能进行分组文档。它还可以用于将用户分类为机器人,或者基于帖子和注释等活动模式对机器人进行分类。 K-Means Clustering也可用于根据合并症,年龄,患者历史等的特征,根据监测健康的界面将人们进入群体。

K-means群集也可用于更开放的任务,如创建推荐系统。像NetFlix这样的系统的用户可以根据查看模式分组,并建议类似的内容。 K-Means聚类可用于异常检测任务,突出潜在的欺诈实例或有缺陷的物品。