【问题标题】:Finding clusters in matrices在矩阵中查找簇
【发布时间】:2015-01-21 07:25:16
【问题描述】:

我正在尝试学习矩阵中的模式。我认为集群适合这样的任务,但不确定哪些集群技术(k-mean、hierachy、dbscan 等)是有效的。以下是一些示例。

  1. 这个矩阵产生 3 个簇:对角线 包含 1s,对角线上方的(右上)三角形 包含 0,以及包含随机数的(左下)三角形 0,1 的。

    1,0,0,0,0,0,0,0,0,0
    1,1,0,0,0,0,0,0,0,0
    0,1,1,0,0,0,0,0,0,0
    0,1,0,1,0,0,0,0,0,0
    0,0,1,0,1,0,0,0,0,0
    1,0,0,0,1,1,0,0,0,0
    1,1,1,1,1,0,1,0,0,0
    0,0,1,1,0,0,1,1,0,0
    1,1,1,0,1,0,1,1,1,0
    1,1,0,1,1,1,1,0,1,1
    

当使用 k=3-means 时,我得到了以下结果(0,1,2 表示标签或簇)。显然,不是我想要的

    0 0 0 0 2 2 2 2 2 2
    0 0 0 0 2 2 2 2 2 2
    0 0 0 0 2 2 2 2 2 2
    0 0 0 0 2 2 2 2 2 2
    0 0 0 0 2 2 2 2 2 2
    0 0 1 1 1 1 1 2 2 2
    0 1 1 1 1 1 1 1 1 2
    1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1
  1. 这会产生 4 个簇:左上角 1、右上角 1 的 3x3 矩阵、左下角矩阵 1 以及其余的。

    1,0,0,0,1,1,1
    0,0,0,0,1,1,1
    0,0,0,0,1,1,1
    0,0,0,0,0,0,0
    1,1,1,0,0,0,0
    1,1,1,0,0,0,0
    1,1,1,0,0,0,0
    

k=4-mean 给出以下结果,这也不是我想要的

    1 1 1 0 0 0 0
    1 1 1 0 0 0 0
    1 1 1 0 0 0 0
    2 2 1 3 3 3 3
    2 2 2 3 3 3 3
    2 2 2 3 3 3 3
    2 2 2 3 3 3 3

【问题讨论】:

    标签: image-processing matrix computer-vision cluster-analysis k-means


    【解决方案1】:

    聚类分析不是您要寻找的工具。

    您的要求可能更多的是图像处理性质而不是集群。

    聚类不会在矩阵上“直观地”运行。一个单元在集群中与另一个单元非常相似,一个单元主要使用矩阵,因为有可用的快速实现,并且您最终会得到一个简短的概念和相当高的性能。 Clustering 使用的矩阵类型通常是距离矩阵

    此外,大多数聚类算法会假设属性是连续的

    如果您只是将您的单元格映射到(x,y,value),我一点也不惊讶它不起作用。三列的数值范围不匹配,值为 0 的“点”与值为 1 的“点”不一样。这不是适合此类算法的数据模型。

    问题是,我用过的 100 种聚类算法都不能满足你的要求。

    相反,图像分析技术更有可能为您提供帮助。

    【讨论】:

    • 谢谢,我去看看图像处理技术。
    【解决方案2】:

    我不得不同意 Anony-Mousse 的观点。据我所知,没有任何聚类技术可以处理您的所有情况。

    特别是,我建议您查看Image Segmentation 上的维基百科页面。它提到了 Anony-Mousse 不赞成的那种方法的概括。例如,如果您使用 (x,y,value) 表示,使得 value 的权重明显高于位置,那么 也许 它可以在第二种情况下发现您想要的四个细分。也就是说,我无法使用 scipy kmeans 函数完成这项工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多