【问题标题】:Calculating Euclidean Distance for Large DataSets计算大型数据集的欧几里得距离
【发布时间】:2012-04-19 01:58:07
【问题描述】:

我必须计算训练数据和测试数据之间的欧几里得距离。 train数据的总长度为1389,测试数据为364。基本上是美国邮政信封上手写邮政编码的数据,从“统计学习要素”的website下载。

我是初学者,只是阅读 R 包中的数据。我无法开始计算火车和测试数据之间的距离。谁能帮我告诉我如何为这些数据生成一个循环?

我会很感激的。

【问题讨论】:

  • 这个问题目前的形式相当模糊,但是在你读入数据后,看看?dist函数......它会为你计算你的欧几里得距离
  • 感谢您的帮助。我探索并了解了图书馆(领域)。实际上我必须在给定的数据集上执行 KNN(监督分类),并且我遵循计算距离、排序、选择邻居然后预测的方法。我的 K 值为 1、3、5、7 和 15。如果我的问题可以理解,您能解释一下吗?

标签: r distance


【解决方案1】:

对于欧几里得距离,我喜欢使用 fields 包中的 rdist。与stats 包中的dist 相比,一个优势是它可以将两个矩阵作为输入:

train.data <- matrix(runif(1389*2), ncol = 2)
test.data  <- matrix(runif(364*2),  ncol = 2)

library(fields)
distances <- rdist(train.data, test.data)
dim(distances)
# [1] 1389  364

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-30
    • 2020-11-29
    • 2018-02-14
    • 2013-04-07
    • 2021-01-31
    • 2015-09-23
    • 1970-01-01
    相关资源
    最近更新 更多