二等分k均值聚类算法解释

时间:2011-07-29 10:04:29

标签: algorithm cluster-analysis k-means

我被要求写一个二等分k-means算法,但我不理解算法。 我知道k-means算法。

你能解释一下算法吗,但不能解释academic language

感谢。

1 个答案:

答案 0 :(得分:14)

这个想法是迭代地将你的云点分成两部分。换句话说,您构建一个随机二叉树,其中每个拆分(一个有两个子节点的节点)对应于在2中拆分云点。

你从一堆积分开始。

  • 计算其质心(重心)w

  • 在云点

  • 中随机选择一个点cL
  • 将构造点cR作为cL的对称点与w相比(段cL-> w与w-> cR相同)

  • 将云的点分成两部分,最接近cR的点属于一个子云R,而最接近cL的点属于子云L

  • 重申子云R&L

注意:

您可以在使用它们后丢弃随机点。但是,请保留所有子模的质心。

当你的subcloud只包含一个点时停止。

如果你想要k个簇,只需取k个质心,使它们包含初始云的所有点。如果你想要的话,你可以做更多精心设计的东西(最小化云的变化等等)。假设你想要4个集群(为了方便你的功率为2)那么你只需要将云切成两半,然后每个二分云。如果你想要8个簇,那么再将这些子云切成两次。再次为16个集群。

如果你想要K群的K不是2的幂(比方说24),那么看看最接近的2的次幂。这是16.你仍然缺少8个集群。每个“16级集群”都是“16级子云”的质心。你要做的是采用8“16级集群”(例如随机)并用两个“子”“级别-32-集群”替换它们。 (这两个子级“32级集群”对应于两个“级别-32-subclouds”,它们加起来为父级“level-16-subcloud”)