📜  二分K-Means算法介绍

📅  最后修改于: 2022-05-13 01:57:14.475000             🧑  作者: Mango

二分K-Means算法介绍

先决条件: K 表示聚类 - 介绍

K-Means 算法有一些限制,如下所示:

  • 它只能识别球形簇,即它不能识别簇是否为非球形或具有各种大小和密度。
  • 它受到局部最小值的影响,并且在数据包含异常值时会出现问题。

二分 K 均值算法是对 K 均值算法的修改。它可以产生分区/层次聚类。它可以识别任何形状和大小的簇。这个算法很方便。

  • 它在熵测量方面击败了 K-Means。

注意:熵测量是对正在处理的数据中随机性的测量。例子:抛硬币。如果正在处理的给定数据的熵很高,则很难从该数据中得出结论。 ]

示例 1 —假设您走进一个由许多椅子组成的大厅,然后坐在其中一个椅子上,而没有特别注意任何其他椅子,也没有考虑是否可以从您所坐的椅子上听到舞台上演讲者的声音。这种方法可以称为“K-Means”。



示例 2 —假设您走进一个由许多椅子组成的大厅。您观察所有椅子,并根据各种因素决定占用哪一张,例如您是否可以从该位置听到扬声器以及椅子是否放置在空调附近。这种方法可以称为“二等分 K 均值”。

二分 K 均值算法:

  1. 初始化集群列表以容纳由所有点组成的集群。
  2. 重复
  3. 从集群列表中丢弃一个集群。
  4. { 对选定的簇执行几次“试验”二分。 }
  5. 对于i = 1 到试验次数
  6. 使用基本 K 均值将选定的簇一分为二。
  7. 结束于
  8. 从二等分中选择总 SSE 最少的 2 个簇。
  9. 直到集群列表包含“K”个集群

  • 该算法的工作可以浓缩为两个步骤。
  • 首先,让我们假设最后阶段所需的集群数量,'K' = 3(如果没有提到,可以假设任何值)。

步骤 01:

  • 所有点/对象/实例都放入 1 个集群中。

步骤 02:

  • 应用 K 均值 (K=3)。集群“GFG”被分成两个集群“GFG1”和“GFG2”。尚未获得所需的集群数量。因此,'GFG1' 被进一步分为两部分(因为它具有更高的 SSE(计算 SSE 的公式在下面解释))

  • 在上图中,当我们将集群 'GFG' 拆分为 'GFG1' 和 'GFG2' 时,我们使用上述公式分别计算了两个集群的 SSE。具有更高 SSE 的集群将被进一步拆分。具有较低 SSE 的集群相对包含较少的错误,因此不会进一步分裂。
  • 在这里,如果我们计算得出,集群“GFG1”是具有较高 SSE 的集群,我们将其拆分为 (GFG1)` 和 (GFG1)`。提到最后阶段所需的集群数量为'3',我们已经获得了3个集群。
  • 如果没有得到所需的簇数,我们应该继续分裂,直到产生它们。

例子:

考虑一个集群 'G' = ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) ,由 10 个点组成。 K=3(给定)

  1. 应用二分 K 均值算法,第 [A] 步中所示的集群“G”被分成两个集群——“G1”和“G2”,如第 [B] 步中所示。最后阶段所需的集群总数,即'K'=3(给定)。
  2. 由于尚未获得所需的集群,我们应该拆分获得的两个集群之一。
  3. 选择具有较高 SSE 的集群(因为具有较低 SSE 的集群错误较少)。在这里,具有较高 SSE 的集群是集群“G1”。它分别分为(G1)`和(G1)“。
  4. 因此,获得了所需数量的集群。