【发布时间】:2017-08-19 05:18:42
【问题描述】:
假设我有一个如下数据集:
[{"x":20, "y":50, "attributeA":90, "attributeB":3849},
{"x":34, "y":20, "attributeA":86, "attributeB":5000},
etc.
除了这些之外,可能还有更多其他属性 - 这只是一个示例。我想知道的是,如何根据所有因素对这些点进行聚类,并控制给定变量的给定点与下一个点之间的最大间隔,以便将其视为链接。 (即欧式距离必须在 10 点以内,attributeA 在 5 点以内,attributeB 在 1000 点以内)
关于如何在 python 中执行此操作的任何想法?正如我上面暗示的那样,如果可能的话,我想应用欧几里德距离来比较两点之间的距离 - 而不仅仅是将 x 和 y 作为单独的属性进行比较。对于其余的属性,这将是所有单维比较......如果这有意义的话。
编辑:只是为了增加一些清晰度以防万一这没有意义,基本上我正在寻找一些算法来比较所有对象(或更有效的方法),如果所有与对象 B 相比,对象 A 的属性和欧几里得距离在指定阈值内,那么这两个被认为是相似和链接的 - 这个过程一直持续到最终可以返回所有 链接 集群,因为某些集群将没有满足条件的点与另一个簇中的任何点相似,从而导致簇被分离。
【问题讨论】: