联系我们

AI 101

什么是K均值聚类?

mm

更新

 on

K-均值聚类是 无监督学习 算法,以及所有 无监督学习 在算法上,由于K-均值聚类的强大功能和简单性,它可​​能是使用最广泛的一种。 K-means聚类如何工作?

简短的答案是K-means聚类通过 创建参考点(质心) 所需的课程数,然后 将12博下载app点分配给类聚类 基于哪个参考点最近。虽然这是K-means群集的快速定义,但让我们花一些时间深入研究K-means群集,并更好地了解其运行方式。

定义聚类

在检查用于执行K均值聚类的确切算法之前,让我们花一点时间来大致定义聚类。

群集只是项目组,而群集只是将项目放入这些组中。在里面 12博下载app科学 感, 聚类算法 旨在做两件事:

  • 确保群集中的所有12博下载app点彼此尽可能相似。
  • 确保不同群集中的所有12博下载app点彼此之间尽可能不同。

聚类算法基于某种相似性度量将项目分组在一起。这通常是通过查找12博下载app集中不同可能组的“质心”来完成的,尽管不是唯一的。有多种不同的聚类算法,但是所有聚类算法的目标都是相同的,以确定12博下载app集固有的组。

K均值聚类

K-Means聚类是最古老,最常用的聚类算法之一,它基于 向量量化。在空间中有一个点被选作原点,然后从原点到12博下载app集中的所有12博下载app点绘制矢量。

通常,K均值聚类可以分为五个不同的步骤:

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

重复上述步骤,直到训练过程完成。

在初始阶段,质心放置在12博下载app点之间的某个位置。
Photo: Weston.pace via wikimedia commons, GNU Free Documentation License (//commons.wikimedia.org/wiki/File:K_Means_Example_Step_1.svg)

另外,在放置了质心之后,我们可以将K-means聚类视为在两个不同阶段之间来回交换:标记12博下载app点和更新质心。

In the second step, a distance metric like Euclidean distance is used to calculate which centroid a given point is closest to, 和 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)

在12博下载app点标记阶段,为每个12博下载app点分配一个标签,将其放置在属于最近质心的群集中。尽管可以根据馈入聚类算法的12博下载app类型使用其他距离度量标准(例如曼哈顿距离,余弦和雅克卡德距离),但通常使用平方的欧几里得距离来确定最接近的质心。

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)

在质心更新步骤中,通过找到群集中当前包含的所有12博下载app点之间的平均距离来计算质心。

如何为“ K”选择正确的值

考虑到K均值聚类是一种无监督算法,并且类别数尚未事先得知,您如何确定适当的类别数/ K的正确值?

一种选择正确的K值的技术称为“肘部技巧”。弯头技术包括对一系列不同的K值运行K-均值聚类算法,并使用精度度量(通常为平方误差总和)来确定哪些K值可提供最佳结果。通过计算聚类的质心与该聚类中的12博下载app点之间的平均距离来确定平方误差总和。

术语“弯头技术”来自以下事实:当您针对K的不同值绘制SSE时,所得到的折线图通常会呈“弯头”形状,其中K的前几个值SSE迅速降低,但随后趋于平稳。在这种情况下,位于肘部的K值是K的最佳值,因为在此值之后收益迅速减少。

迷你批次K均值聚类

随着12博下载app集变大,计算时间也变长。在大量12博下载app集上运行时,基本的K-means聚类可能需要很长时间才能完成,因此,对K-means聚类进行了一些调整,以减少算法的空间和时间成本。

迷你批次K均值聚类 是K-means聚类的变体 所考虑的12博下载app集大小的上限。普通K均值聚类一次对整个12博下载app集/批次进行操作,而迷你批次K均值聚类 将12博下载app集分解为子集。从整个12博下载app集中随机采样迷你批次,并为每个新的迭代选择一个新的随机样本,并利用其更新质心的位置。

在Mini-Batch K-Means聚类中,将使用mini-batch值和学习率的组合来更新聚类。学习率会随着迭代次数的增加而降低,这是放置在特定集群中的12博下载app点数量的倒数。降低学习率的效果是,当经过几次迭代后,聚类中没有任何变化时,新12博下载app的影响会减小,并且会实现收敛。

关于Mini-batch K-means聚类的有效性的研究结果表明,它可以成功地减少计算时间,并且在聚类质量上稍有取舍。

K均值聚类的应用

K-means聚类可以安全地用于任何可以将12博下载app点划分为不同的组/类的情况。以下是K均值聚类的一些常见用例示例。

K-means聚类可以应用于文档分类,根据主题,标签,单词用法,元12博下载app和其他文档功能等功能对文档进行分组。它也可以用于根据帖子和评论等活动模式将用户分类为机器人,也可以不将其分类为机器人。 K-means聚类还可用于根据人们在监测其健康时的关注程度,基于合并症,年龄,患者病史等特征,将人们分为几类。

K-means聚类还可以用于更开放的任务,例如创建推荐系统。像Netflix这样的系统的用户可以根据观看模式和推荐的相似内容分组在一起。 K均值聚类可用于异常检测任务,突出显示欺诈或缺陷物品的潜在实例。

专门从事以下工作的Blogger和程序员 机器学习 深度学习 话题。 Daniel希望帮助他人将AI的力量用于社会公益。