如何做javascript在线k-means聚类多维度

时间:2015-04-28 10:47:11

标签: javascript cluster-analysis k-means

我发现了许多javascript在线k-means聚类的例子,但所有这些都是针对2维的。

如果我有56个维度(例如),我该如何进行聚类?

加分问题:

是否有可能通过一些新数据预测某些值看群集(例如,76%属于群集x,因此值应为y)

1 个答案:

答案 0 :(得分:2)

k-means算法应该易于移植到任意数量的维度。它看起来像这样:

  1. 随机选择群集中心。
  2. 对于每个点检查,最近的簇是什么。
  3. 通过计算所有点的平均值来计算新的集群中心。
  4. 重复,直到群集中心不变。
  5. 在2d中,您检查2. (x1, x2)(y1, y2)之间的距离,如此(x1-x2)^2 + (y1-y2)^2(如果您仅使用距离,则无需使用平方根将它与另一个距离进行比较)。在56个维度中,您只有56个组件。

    在2d中,您可以通过获取所有点来计算集群中心。获取所有点的第一个维度并取平均值avg1,将所有第二维avg2最多为56,新的群集中心将为(avg1, avg2, avg3 ... avg56)

    不容易的是,它非常昂贵。查看与PCA类似的降维(特征提取)算法。

    还要确保所有的风险都正常化。例如 - 它们的范围介于(-100, 100)之间。

    如果您需要更多信息,请查看coursera处的机器学习课程。 第8周是关于聚类及其陷阱的。