【问题标题】:Kmeans2 returning the ordered centroids list based on how many data points they correspond toKmeans2 根据它们对应的数据点返回有序质心列表
【发布时间】:2012-12-27 20:55:05
【问题描述】:

我在一些数据集上使用 Opencv Kmeans2() 聚类函数。实际上,集群质心从随机初始化开始。然后进行聚类。

如何按特定顺序请求所有这些质心,例如数据集最大块的第一个 cetroid,然后是下一个(按降序排列,假设在多维空间中没有相同的不同点位置集)等等开吗?

【问题讨论】:

  • 如果你能多解释一下你的问题会更好,可以提供额外的细节,如代码、结果你得到什么以及你期望什么等。
  • 对......假设我有 100 个样本,我随机指定 3 个集群......但我事先知道一个标签有 50 个样本,另一个标签有 30 个样本,另一个标签有 20 个。如何按顺序请求 50 个样本、30、20 个样本的质心?
  • (我不确定我的问题是否正确)如果您事先了解它们,为什么要应用 kmeans?您可以直接对它们进行分组并手动找到它们的质心。
  • 因为我不知道他们的位置......我只知道“存在大量,还有另一个类似的,依此类推”......考虑以下示例:具有前景和背景 。 ..我知道更多的像素是bg,更少的是fg。 Runnig 聚类将给出两个质心。如何使用 cvkmeans2 按以下顺序请求质心: bg first 和 fg second ... 是否存在将它们存储在中心矩阵中的层次结构?
  • 我不认为有等级或顺序。不能计算标签并根据它们的数量对它们进行排序吗?是计算 0 和 1 的数量。如果 0 多,0 是 bg(因为你知道 bg 多),1 是 fg。

标签: opencv cluster-analysis


【解决方案1】:

您为什么不按自己的喜好订购它们?

对于大多数 CV 应用程序,这不是必需的,我想您可以自己轻松完成。好像没有优化的 k-means 以特定顺序返回集群。由于 k-means 是随机初始化的,因此集群没有“自然”顺序。正如您已经指出的,在集群分配和集群大小方面可能存在联系。

【讨论】:

  • 好的,我想要的只是返回最大簇的质心......然后是下一个,依此类推
  • 所以,尝试这样做。这并不难。但我怀疑 OpenCV k-means 是否将其作为内置函数,因为这不是常见或通用的用例。
【解决方案2】:

我打算统计标签,看看哪个质心集群属于数据集的大部分

【讨论】:

    猜你喜欢
    • 2021-10-01
    • 2020-02-09
    • 2010-11-25
    • 2020-02-28
    • 2019-02-28
    • 2019-11-02
    • 2023-04-03
    • 2017-08-25
    • 1970-01-01
    相关资源
    最近更新 更多