【发布时间】:2014-01-14 21:31:10
【问题描述】:
我遇到的问题是矩形中有矩形。想象一张地图,除了以下特征,关键点是:具有相似密度的矩形通常与其他矩形共享相似的尺寸和在 x 轴上的相似位置,但有时这些矩形之间的距离可能很大但通常很小。如果 x 轴上的位置或尺寸明显偏离,则它们不会相似。
矩形不相交,较小的矩形完全位于较大的矩形内。
矩形通常具有相似的 x 位置和相似的尺寸 (相似的高度和宽度),并且里面有更小的矩形。矩形本身将被视为它自己的一个簇。
有时这些集群与另一个集群的距离可能相当大 大(想想岛屿)。通常这些集群共享相同或 相似的尺寸和相同或相似的子矩形密度。如果是这样,尽管两个集群之间存在距离,但它们应被视为同一集群的一部分。
- 矩形越密集(内部的矩形越小),附近有相似或相同的密集矩形共享相同或相似尺寸的可能性就越大。
我附上了一张图表来更清楚地描述这种情况:
红色边框表示这些组是异常值,不属于任何集群 并被忽略。
蓝色边框有很多簇(黑色边框包含黑色实心 矩形)。它们形成一组相似的集群,因为 上述标准(相似的宽度,相似的 X 位置, 相似的密度)。即使是右下角的集群 由于标准,仍被视为该组的一部分 (相似的宽度,相似的 X 位置,相似的密度)。
绿松石边框有很多簇(黑色边框包含黑色 实心矩形)。然而,这些簇的维度不同,x 位置和密度,来自蓝色边框中的位置和密度。他们是 被认为是他们自己的一个群体。
到目前为止,我发现 DBSCAN 之类的密度聚类似乎很完美,因为它考虑了噪声(异常值),而且您不需要提前知道会有多少聚类。
但是,您需要定义形成集群所需的最小点数和阈值距离。如果您不知道这两个会发生什么,并且可能会因上述问题而有所不同?
另一个看似合理的解决方案是分层(凝聚)集群(r-tree),但我担心我仍然需要知道树深度级别的截止点才能确定它是否是集群。
【问题讨论】:
标签: cluster-analysis hierarchical-clustering r-tree dbscan