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

r - 使用嵌套的 for 循环填充距离矩阵

我在使用数据(“蝴蝶”)集时遇到问题。问题是:

问题4:安装包“ade4”,后跟data(butterfly)。我们的问题是:“遗传相似性是否与蝴蝶群落之间的地理距离相关?” 使用我们称为 d1 的距离度量填充遗传距离矩阵。执行 Mantel 随机化测试并解释结果。使用距离 d2 的测量值重复测试。有什么不同吗?显示您的 for 循环代码作为答案的一部分,以及 Mantel 随机化测试中的散点图和随机化图。

这是用于计算相异性的函数。我不明白如何

这是我用来设置遗传距离矩阵的代码。

我能够计算两个地理距离之间的差异(例如):

但我不明白如何应用 for 循环来填充所有地理距离的矩阵。我也不了解 Mantel 随机化测试。问题是暗示我们对每个矩阵执行 Mantel 随机化测试,但该测试不比较两个矩阵(即 d1 和 d2)之间的相关性吗?

任何帮助将不胜感激,我是统计和 R 的新手。

0 投票
1 回答
451 浏览

r - Negative length vectors are not allowed in distance function

I have a large data frame (375,000 row and 5 columns), all variables are numerical. I would like to spatio-temporal cluster this data frame using hierarchical clustering in R. However, when I try to calculate the distance matrix, I get the following error: "Negative length vectors are not allowed in distance function". Is it because of exceeding the maximum memory my computer has (16 GB RAM)? or is it due to exceeding the maximum length of any vector in R which is 2^31 - 1 (around 2 billions) elements? By the way, how to calculate the length of this distance matrix that I am trying to compute? is it 375,000^2 which equals nearly 100 billion? In any case, what can I do regarding this problem? Can I somehow still use hierarchical clustering in this case?

Clustering using kmeans works perfectly but my supervisor prefers hierarchical clustering.

Any hints/suggestions will be greatly appreciated

P.S. Rows represent vehicle trips IDs, and columns represent: longitude of starting point, latitude of starting point, longitude of end point, latitude of end point and time of trip on specific day (all values are scaled for all variables).

0 投票
2 回答
1790 浏览

r - 如何从成对距离矩阵生成 Newick 树输出

我想从遗传数据中产生系统发育树。我在 R 和 python 中发现了一些看起来很棒的树图包,例如 R 中的 ggtree。但是这些需要已经采用树格式的数据输入,例如 Newick。

我认为大多数人从 vcf 文件开始并生成 FASTA 文件,但我的出发点是基因型表 - 我使用单倍体生物体,因此每个位置都是 0(参考)或 1(非参考)。据此,我使用 R 中的 dist() 计算成对遗传距离。 5 个样本 AE 的示例数据,成对距离超过十个变异位置:

我想从 pdist 生成一个分层树输出文件,例如 Newick 格式,以便我可以将其插入 ggtree 之类的包中以绘制漂亮的树,例如圆形系统发育图、用协变量着色等。我尝试过搜索但不确定从哪儿开始。

编辑/更新 这个网站很有帮助 http://www.phytools.org/Cordoba2017/ex/2/Intro-to-phylogenies.html 我使用了包:ape、phangorn、phytools、geiger

这段代码似乎工作 -

输出树: 来自示例数据的无根距离树

0 投票
1 回答
1333 浏览

r - 在 R 中创建自定义距离矩阵函数

我的任务是创建基于自定义距离度量的距离矩阵函数。距离测量如下:

其中 u 和 v 是向量,w 是权重。

我要解决的问题:

我要创建一个距离矩阵函数 create-dm(x,w),它通过为属于的所有对象 a 和 b 调用 wabs-dist(a,b,w) 来返回数据帧 x 中对象的距离矩阵X。如果 x 是具有 4 个属性的数据集,则 w 是一个向量,例如分配给每个属性的 w = c(1,1,3,2)。是的,已经有像 dist() 这样的标准函数,但我要在这里使用 wabs_dist 创建自己的函数。

到目前为止我的解决方案:

我如何实现权重向量,因为我编写这个函数的心态是只传递一个权重,但现在我必须编写它来接受一个列表。如何使用权重列表实现此功能?

这个函数需要很多时间来运行。事实上,它从来没有真正打印出距离矩阵函数。我不知道为什么

一个例子:

设 x 为包含向量 a、b 和 c 的数据框,其中: a: (1, 2) b: (4, 5) c: (9, 12)

w 是权重向量:(0.2, 0.3)

wabs-dist(a,b,w) = 1.5 wabs-dist(b,c,w) = 3.1

创建-dm(x,w)=

0 投票
2 回答
869 浏览

python - 解决 python 列表中的内存错误问题或更聪明的 Numpy 方法

我正在尝试计算一个 DTW 距离矩阵,该矩阵将查看 150,000 个时间序列,每个时间序列具有 13 到 24 个观测值 - 也就是说,生成的距离矩阵将是一个大小约为 (150,000 x 150,000)/2= 11,250,000,000 的列表。

我在一个大小为 200GB 的大数据集群上运行它,但出现内存错误。

我正在使用 dtaidisatance 库并使用了distance_matrix_fast函数,我可以在列表中一次传递整个时间序列,但是我遇到了类似的内存错误,但是从包中出来了。但是,一旦我运行它,错误就会立即被抛出。我还使用了包中的块功能,但似乎无法一次将所有时间序列都带入。

所以我决定通过一个循环计算每两对时间序列之间的距离,然后将其附加到一个列表中。但是,在运行了很长时间后,我确实再次遇到了与以下相同的内存错误:

文件“/root/anaconda2/test/final_clustering_2.py”,第 93 行,在 distance_matrix_scaled.append(dtw.distance_fast(Series_scaled[i], Series_scaled[j])) MemoryError

这是我下面的代码:

你能帮忙回答为什么我会收到这个内存错误吗?是python列表限制还是我的集群大小导致了这个?numpy中是否有一种聪明的方法或格式可以用来解决这个问题?

0 投票
1 回答
641 浏览

php - 一种克服距离矩阵 API 带来的元素限制的算法

首先,我进行了 StackOverflow 搜索,所以我知道这是新的。请继续阅读:

所以我有一个包含 9 个位置的字符串数组,需要找到它们之间的距离才能输入到算法中。我使用了谷歌的距离矩阵 API,并将这些地方作为起点和终点传递,它返回一个响应,我制作了一个这样的 nxn 方阵:

在这种情况下,按行和按列都是地名,即按相同顺序排列的相同地点数组,这就是为什么对角线元素为零(尽管实际上由于某种原因谷歌的响应并不总是 0)从自身到某个地方应该是 0。

现在的问题是,Google 距离矩阵 API 每个请求限制为 25 个元素,其中起点和终点的计数总和不应超过 25。因此,由于我使用相同的起点和终点,因此将其分解最多 12 个元素。但是我正在构建的应用程序需要计算超过 12 个位置,所以我正在考虑一种解决方法。

一个想法是使用这种逻辑(它不是真正的代码,我写它只是为了展示算法/伪代码):

所以基本上在这种情况下,如果地点数超过 12 个地点,它会改为有趣的 for 循环,它将一个地点作为起点,将所有地点作为目的地。这样我就可以将限制从 12 -> 25 移动,因为它计算 1 个起点和 24 个目的地。问题是仍然超过 24 岁,它无法工作。那么有没有其他方法可以克服这个问题?我知道必须有某种方法可以发出多个请求并填充矩阵,我想知道如何,因为我无法想到算法。

0 投票
1 回答
1398 浏览

python - 在python中将邻接矩阵转换为距离矩阵

我转换了以下边缘列表:

到以下邻接矩阵:

其中源列是发送方,目标列是投资接收方;重量栏是投资的体积。我想在这个加权网络上进行层次聚类,以找出哪些参与者可以根据他们的相互投资聚集在一起(相互投资越高,参与者越“接近”)。

我正在使用 SciPy 的层次聚类包 ( scipy.cluster.hierarchy),我的核心问题是将上面的边缘列表转换为包将知道如何正确读取的距离矩阵。距离应该更小,关系的权重越高(反之亦然),但是 当使用上述数据帧作为输入时, distance_matrixfrom只会给出错误。scipy.spatial

有没有办法以所描述的方式反映边缘权重的方式计算距离矩阵?要点只是要知道将邻接矩阵转换为距离矩阵以使其可用于 scipy 包的方法

0 投票
1 回答
258 浏览

r - 仅计算单行相异/距离矩阵

我有一个包含 30k 行和 10 个特征的数据框。我想计算如下距离矩阵;

gower_dist <- daisy(data-frame, metric = "gower"),

此函数返回整个相异矩阵。我只想得到第一行。(只是数据框中第一个元素的距离)。我该怎么做?你有想法吗?

0 投票
1 回答
74 浏览

python - 一种有效计算一个标记像素到其最近的不同标记像素的距离的算法

我为我冗长的标题名称道歉。我有两个问题,第二个问题是基于第一个问题。

(1)。假设我有一个矩阵,其条目为 0 或 1。现在,我选择一个任意的 0 条目。是否有一种有效的算法可以搜索标签为 1 的最近条目或计算选择的 0 条目与其标签为 1 的最近条目之间的距离?

(2)。现在假设条目 1 的分布具有几何属性。为了使这个陈述更清楚,把这个矩阵想象成一个图像。在此图像中,有多条连续线(不一定是直线)。这些线形成了几个边界,将图像划分为更小的部分。假设边界标记为 1,而分区区域中的所有像素标记为 0。现在,类似于(1),我选择一个标记为 0 的随机像素,我希望找出标记为的最近像素的坐标1 或它们之间的距离。

第 (1) 部分的提示/方向对我来说就足够了。如果输入答案需要太多时间,只需告诉我算法的名称即可,我会查找它。

ps:如果我在不正确的部分发布此问题,请告诉我。我会将其重新发布到适当的部分。谢谢!

0 投票
1 回答
383 浏览

google-maps - 如何在 Ionic 3 上使用本地谷歌地图显示路线

我正在 Ionic 3 中构建一个项目,我正在使用 Ionic 的本地地图插件,我可以显示地图,我可以在选定的地址中添加一个标记,但我没有设法在地图上显示推荐的路线.

HTML:

TS:

}

我正在尝试这个,但不起作用

}

我可以使用 var "service" 调用任何函数吗?还是我需要尝试另一种方式?

我可以用另一种不是更好的方式显示路线,我需要使用这种原生方式,有人知道我能做什么吗?