问题标签 [distance-matrix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1561 浏览

r - dist() 的复杂度是多少?

dist在 R 中使用了这个函数,我想知道它的时间复杂度。

我知道层次聚类具有N^2*logN时间复杂度。层次聚类由两部分组成,如下R中的代码。

在应用层次聚类之前,需要计算距离矩阵。我认为这需要N^2复杂性?

0 投票
1 回答
903 浏览

parallel-processing - 如何并行计算成对距离矩阵?

我的问题大致如下。给定一个数字矩阵 X,其中每一行是一个项目。我想根据除自身之外的所有行中的 L2 距离找到每一行的最近邻居。我尝试阅读官方文档,但对于如何实现这一点仍然有些困惑。有人可以给我一些提示吗?

我的代码如下

我正在尝试将所有 i (即计算每行最小值)分布在不同的核心上。但是上面的版本显然不能正常工作。它甚至比顺序版本还要慢。有人可以指出我正确的方向吗?谢谢。

0 投票
0 回答
196 浏览

r - 使用重复测量拟合空间回归,生成不正确的邻居

在构建了相邻距离矩阵之后,我正在尝试拟合空间滞后模型 ( spdep::lagsarlm)。我有两个问题,因为每次我读到它时,模型总是适合每个空间位置只有一个观察值(一行)的数据。

我的数据集对每个空间点都有可变数量的观察(但它不是时间数据),我想知道这样做是否有效,尤其是在创建距离矩阵时,因为我收到警告:

事实上,当我绘制邻居关系时,我得到了一个错误的图表(我猜算法认为重复的点是他们自己的邻居,所以它们被隔离了);当我只过滤第一个度量时,情节就可以了。

在此处输入图像描述

所以我对我的lagsarlm模型在第一种情况下的结果不是很有信心..

但是,如果我尝试用更大的数据集拟合我的模型,但使用正确的邻居矩阵,它会抱怨

最后,我该如何处理这些数据?谢谢。

0 投票
1 回答
2969 浏览

python - 如何在 GPU 上计算成对距离矩阵

我的代码中的瓶颈是我计算成对距离矩阵的区域。由于这是迄今为止最慢的部分,我花了很多时间来加速我的代码。

我发现许多使用在线文章的加速,但收益微乎其微。因此,我正在寻找一种方法来使用我的 GPU 创建距离矩阵,以进一步加快速度。但是,我对使用 GPU 进行计算知之甚少。 谁能帮我做到这一点?

在我的研究中,我发现了以下内容,但他们都没有使用 GPU

  1. 这篇文章很有用,但加速很少。
  2. 本文提供了有关如何使用 cython 和 numba 的信息。

以下是如何计算成对距离矩阵的示例片段:

我的显卡是 Nvidia Quadro M2000M

0 投票
2 回答
375 浏览

python - 如何将带有标签的距离值存储到距离矩阵中?

我正在尝试将所有给定文档之间的距离存储到距离矩阵中。

这是我的代码:

但运行代码后,出现以下错误:

IndexError: list assignment index out of range

谁能告诉我应该更改什么才能使我的代码正常工作?

0 投票
3 回答
564 浏览

python - 转换为适当的距离矩阵(对于 TSP)

我目前有一个这样的矩阵:

这样第一个数组是从城市 1 到 2、3、4、5、6、7、8 的距离,第二个是从城市 2 到 3、4、5、6、7、8 的距离……第 7 个数组是从城市 7 到城市 8 的距离。我需要将其转换为适当的距离矩阵。

到目前为止,我已插入 0 使其大小为 7,它变为:

然后我做了

它变成:

然后我插入 0 以包括从城市到同一城市的距离:

最后加上最终城市的距离:

但我似乎在某个地方出错了,因为我没有生成正确的距离矩阵。我相信这可能是 distances[i][j]=[j][i] 位,但我不完全确定。

0 投票
1 回答
682 浏览

c++ - 优化 CUDA 内核的执行以进行三角矩阵计算

我正在开发我的第一个 Cuda 应用程序,并且我有一个“低于预期吞吐量”的内核,这似乎是目前最大的瓶颈。

内核的任务是计算一个 N × N 大小的矩阵 ( DD),其中包含数据矩阵上所有元素之间的平方距离。数据矩阵 ( Y) 的大小为 N × D(以支持多维数据)并存储为行优先。

来源:

这是用size_t blockSize = 256and调用的size_t numBlocks = (N*N + blockSize - 1)/blockSize

如何优化这个内核?我最初的想法是,耗时的部分是在不利用某种共享内存的情况下读取数据,但是谁能给我一些关于如何解决这个问题的指针?

nvvc分析工具的备注:

  • 延迟分析
    • 计算利用率约为 40%
    • 内存(L2 缓存)利用率约为 35%
  • 入住不是问题
    • Active Warps 为 57.59,理论值为 64
    • 入住率为理论 100 的 90%

对于我的应用程序,典型值为:

  • 5k < N< 30k
  • D是 2 或 3
0 投票
2 回答
438 浏览

r - 从R中的距离矩阵中找到每个索引的最短平均距离

我正在帮助为三年级课程组建一个空间 R 实验室,其中一项任务将是确定一个与一组多个其他站点最近(即平均最短距离)的特定站点。

我有一个距离矩阵dist_m,我使用gdistance::costDistance它生成的看起来像这样:

dist_m打印时的样子:

期望的输出:从这个 dist 我希望能够识别具有最低平均距离的索引值( 、 或12。在此示例中,它将是 index ,其平均距离为。理想情况下,我也希望返回平均距离()。3446.906.90

我可以通过执行以下操作找到单个索引的平均距离:

但是,理想情况下,我想要一个解决方案,直接识别具有最小平均距离的索引,而不是手动插入索引值(实际数据集将比这大得多)。

由于这是针对大学课程的,我希望任何解决方案都尽可能简单:对于 R 语言经验很少的学生来说,for 循环和应用函数可能很难掌握。

0 投票
0 回答
1495 浏览

r - 将距离矩阵可视化为R中的网络

我试图找到一种将距离矩阵可视化为网络的方法。我遇到了一个类似问题的答案:https ://stackoverflow.com/a/37832966/8767973

虽然非常有帮助,但我对 R 的了解还不够,无法知道使用 qgraph、igraph 或 ggnet 之间的区别。

我有 9 个样本,每个样本都可以用一个向量表示。我已经使用欧几里得或马氏计算了两个距离矩阵,我希望能够将两者可视化为单独的网络。我想我需要使用一些力导向图形绘制算法的实现。

谢谢

0 投票
1 回答
432 浏览

python - 查找多对点之间最近的 8 连通棋盘距离:最短 m-path

我正在使用 OpenCV 在 Python 中处理二进制图像。我有两组点:PNodes 和 FNodes。我想找到最接近每个 FNode 的 PNode(最短 m 路径);在 8 连通棋盘距离方面最接近。

在下面的示例中,假设 PNode(由 * 捐赠)是:(6,1)、(6,5) 和 (5,8)。(索引从 0 开始,第一个元素是行号)。FNodes(用#表示)是:(0,1),(0,9),(1,6),(2,5)和(4,3)。

我不关心距离的确切值,我只想找出最近的一对。像这样:(0,1) 处的 FNode 最接近 (6,1) 处的 PNode。(4,3) 处的 FNode 最接近 (6,1) 处的 PNode。所有距离均以 8 连接棋盘距离表示。

整个过程的最终要求:基本上,我只想确保所有 PNode 至少有 1 个 FNode,它们位于给定的距离范围内(沿着 1s 的路径)。

假设 PNode (PN_1) 有一个位于所需距离范围内的 FNode (FN_1),我还要确保 PN_1 最接近 FN_1,而不是任何其他 PNode。

为了更好地理解,我在下面附上了一张图片;FNodes 是矩形的,PNodes 是圆形的。

我不关心这个矩阵中的其他元素,除了 PNodes 和 FNodes,如图所示。

在此处输入图像描述