问题标签 [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 回答
3817 浏览

c - 将邻接矩阵转换为距离或跳跃矩阵

是否可以将此处定义的 1 和 0 的邻接矩阵转换为此处定义的距离矩阵 其中每个链接的单位长度为 1?

0 投票
1 回答
2387 浏览

r - 如何创建包含每行之间的平均绝对分数的距离矩阵?

给定矩阵,

我想创建一个距离矩阵,其中包含每列每行之间的绝对平均差。例如,和之间的距离X1应该X3是= 1.67,因为:

abs(1 - 3) + abs(2-4) + abs(3-4) + abs(4-5) + abs(2-3) + abs(5-2) = 10 / 6 = 1.67

我尝试过以这种方式使用designdist()vegan 包中的函数:

第 1 列和第 3 列的结果距离为 0.666。这个函数的问题是它把每一列中的所有值相加,然后减去它们。但是我需要将每行之间的绝对差异(单独,绝对)相加,然后将其除以 N。

0 投票
1 回答
2142 浏览

c++ - 增加 CUDA 中每个线程的工作量的示例

算法

我正在用 CUDA 编写一个程序,问题如下:

  • 两个矩阵 A (n * 128) 和 B (m * 128)

  • 我取 A 的第一行,并逐一计算该向量与 B 的所有行之间的距离。

  • 我将每个距离的结果写在矩阵 C 的一行上,因此 C 的元素 C(i,j) 包含 A 的 i 行和 B 的 j 行之间的距离。

  • 然后我继续下一行 A。

我是这样实现的:我有一个由 (n * m) 个块组成的网格,每个块有 128 个线程。(1 * 128)。

问题:该程序成功运行并获得预期结果,但执行时间仅比单线程 CPU 版本快 5 到 10 倍左右。所以我想知道如何在减少之前增加每个线程的工作量以提高性能

内核代码(原始:未优化)

更新

现在,我正在使用另一个映射:我没有采用nm块和128线程块组成的网格,而是增加块内的线程数以减少块数。

新映射:

线程块1288总共 1024 个线程,这是最大大小)

n/8m/8块组成的网格

不幸的是,它给出了错误的结果)。

优化内核代码(待更新)

主机代码(分配 + 内核调用)

PS我有 CUDA 6.0 和 NVIDIA GTX 650(计算能力 3.0)

0 投票
1 回答
819 浏览

python - 将 Pandas 距离矩阵 DataFrame 转换为行

我有一个带有 n 个 ID 作为列和索引的 pandas DataFrame。是否有一些我不考虑将其转换为 n 2行距离的简单方法?

0 投票
1 回答
331 浏览

matlab - MapReduce中的完整距离矩阵

我对 MapReduce 比较陌生,我想到了以下问题:如何在 MapReduce 中计算完整(即非稀疏)距离矩阵?

我有一个包含 N 个实例的 2D 数据集,我必须评估这些点之间的所有可能距离并将它们存储在矩阵中。

到目前为止我所做的是

  • 让 Map 检索它的块,评估这些点之间的距离:生成的矩阵将是一个 NxN 矩阵,具有一些距离和一些零。
  • Reduce 将连接(求和)这样的矩阵,然后填充空隙(即块内距离,仍然为零的元素)

我认为这不是很有效(特别是从记忆的角度来看)。

任何人都可以启发我吗?

更新:我在上面的代码中做了一些优化。现在

  • Map 接收其块并评估这些点之间的距离,而不预先分配 NxN 矩阵,但预先分配 Nx3 矩阵(点 A 中的第一个 col,第二个 col 是 Point B,第三个 col 是 dist(A,B))
  • Reducer 预先分配一个完全用零填充的 NxN 矩阵。现在填充由 Map 计算的距离(块间),然后填充空隙(即块内距离,仍然为零的元素)

毫无疑问,这是一个更好的解决方案,因为 Mappers 不需要构建整个 NxN 矩阵,但我仍然认为它可以做得更好。

0 投票
2 回答
88 浏览

matlab - 以一种很好的方式表示许多项目之间的相似性 MATLAB

我想和你们一起在 MATLAB 中集思广益。给定一个具有多列 (14K) 和几行 (7) 的矩阵,其中列是项目的项目和行特征,我想计算与所有项目的相似性并将其保存在矩阵中,即:

  1. 易于计算
  2. 易于访问

对于 1.,我想出了一个使用pdist()非常快的绝妙主意:

但是访问s并不方便。我更喜欢访问 itemi和之间的相似性j,例如使用S(i,j)

在其原始定义中,S是数组而不是矩阵。将其作为 2D 矩阵存储是一个坏主意吗?我们能想出一个很酷的想法,可以帮助我快速找到哪些相似性对应于哪些项目?

谢谢你。

0 投票
0 回答
47 浏览

php - 如何使用 Google 距离矩阵从特定点返回 (n) 个最近的地址?

我一直在这里研究,到目前为止还没有找到答案。所以这是我的问题:

我在 MySQL 数据库上有几个地址,我需要从一个特定地址返回 10 个最近的地址。我该怎么做?

我如何测量这些距离并选择 10 个最接近的距离还不是很清楚。

请帮我。

更新这个帖子!

我找到了这段代码:

据我所知,它直接在地图上工作。但我想知道如何从我的 Mysql 数据库中获取更多的 de 200 地址,与一个地址进行比较,并与 3 个最接近的地址进行比较。对不起,我不知道我该怎么做。任何帮助将不胜感激!

0 投票
2 回答
7022 浏览

python - 使用networkx从距离矩阵生成图:不一致 - Python

我有以下距离矩阵:

我正在尝试使用 networkx 库将其表示为图形。这是我的代码:

然而,我所看到的并不是我所期望的。例如,考虑这个输出:

在此处输入图像描述

从 开始delta,节点 1 与节点 6 和 7 位于同一点,并且远离节点 4。我在输出图中看不到 。此外,我超时运行它,它会导致另一个输出。这是意料之中的,但距离似乎没有得到尊重。例如,在下图中,1 到 6,7 和 4 之间的距离发生了变化。

在此处输入图像描述

我不明白为什么。

0 投票
1 回答
5967 浏览

c++ - 在 C++ 中创建向量数组

我想创建一个大数据集的距离矩阵,并且只想存储足够接近的元素。代码是这样的

这给了我分段错误。我想我没有正确定义向量数组。我该如何解决这个问题?

0 投票
1 回答
401 浏览

r - 在R中的距离矩阵中变换可能对的列表

我有一系列元素 A、B、C 和 D。对于每个可能的对(AB、AC、AD、BC、BD、CD),我计算了距离度量并存储在位置 x 的向量中。

位置x由以下循环确定:(n是元素的数量,在本例中为 4)

distancevector在 R 中转换为距离矩阵的最简单方法是什么?

例子:

距离向量 = c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6)

我想要的是这个距离矩阵:

1 0.1 0.2 0.3

B 0.1 1 0.4 0.5

C 0.2 0.4 1 0.6

D 0.3 0.5 0.6 1