【发布时间】:2017-04-07 07:53:07
【问题描述】:
我有一组相互连接的节点(大约 10K)。我必须创建小型集群(最多 15 个节点)。
我使用连接距离来查找两个节点之间的距离(使用 Dijkstra 最短路径算法)而不是地理空间距离。 现在的问题是,使用 K-means plus plus 算法创建小型集群需要 1 个多小时。我知道找到两个节点之间的最短距离需要更多时间。如果我想自己存储所有最短路径,则需要更多内存(这是不可能的)。 谁能建议我如何优化它?
【问题讨论】:
-
对不起,我不明白。在 K-Means 中,您必须为两个节点(质心和节点本身)设置距离,才能知道节点本身被分配到哪个集群。现在。迪杰斯特拉?什么之间的最短路径?
-
使用 Dijkstra's 我得到了质心和节点本身之间的最短路径(来自连接图)。
-
是一个“真正的”质心,或者您将质心本身设置为离它最近的节点?
-
它是一个真正的质心。通过 Kmeans 算法的方式,我得到了质心
-
也许我错了,但是因为每次质心改变,你不能保存最初的最短路径距离,主要是因为每次它都改变。无论如何,我想知道:与质心“最近”的所有节点的距离都为 0?
标签: java algorithm machine-learning k-means shortest-path