问题标签 [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.
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。
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 倍左右。所以我想知道如何在减少之前增加每个线程的工作量以提高性能。
内核代码(原始:未优化)
更新
现在,我正在使用另一个映射:我没有采用n
由m
块和128
线程块组成的网格,而是增加块内的线程数以减少块数。
新映射:
线程块128
(8
总共 1024 个线程,这是最大大小)
n/8
由m/8
块组成的网格
不幸的是,它给出了错误的结果)。
优化内核代码(待更新)
主机代码(分配 + 内核调用)
PS:我有 CUDA 6.0 和 NVIDIA GTX 650(计算能力 3.0)
python - 将 Pandas 距离矩阵 DataFrame 转换为行
我有一个带有 n 个 ID 作为列和索引的 pandas DataFrame。是否有一些我不考虑将其转换为 n 2行距离的简单方法?
到
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 矩阵,但我仍然认为它可以做得更好。
matlab - 以一种很好的方式表示许多项目之间的相似性 MATLAB
我想和你们一起在 MATLAB 中集思广益。给定一个具有多列 (14K) 和几行 (7) 的矩阵,其中列是项目的项目和行特征,我想计算与所有项目的相似性并将其保存在矩阵中,即:
- 易于计算
- 易于访问
对于 1.,我想出了一个使用pdist()
非常快的绝妙主意:
但是访问s
并不方便。我更喜欢访问 itemi
和之间的相似性j
,例如使用S(i,j)
:
在其原始定义中,S
是数组而不是矩阵。将其作为 2D 矩阵存储是一个坏主意吗?我们能想出一个很酷的想法,可以帮助我快速找到哪些相似性对应于哪些项目?
谢谢你。
php - 如何使用 Google 距离矩阵从特定点返回 (n) 个最近的地址?
我一直在这里研究,到目前为止还没有找到答案。所以这是我的问题:
我在 MySQL 数据库上有几个地址,我需要从一个特定地址返回 10 个最近的地址。我该怎么做?
我如何测量这些距离并选择 10 个最接近的距离还不是很清楚。
请帮我。
更新这个帖子!
我找到了这段代码:
据我所知,它直接在地图上工作。但我想知道如何从我的 Mysql 数据库中获取更多的 de 200 地址,与一个地址进行比较,并与 3 个最接近的地址进行比较。对不起,我不知道我该怎么做。任何帮助将不胜感激!
c++ - 在 C++ 中创建向量数组
我想创建一个大数据集的距离矩阵,并且只想存储足够接近的元素。代码是这样的
这给了我分段错误。我想我没有正确定义向量数组。我该如何解决这个问题?
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