2012-04-19 49 views
3

我必须计算列车和测试数据之间的欧几里德距离。列车数据的总长度为1389,测试数据的总长度为364.这基本上是美国邮政信封上手写邮政编码的数据,从“统计学习元素”的website下载。计算大数据集的欧氏距离

我是初学者,只是读R包中的数据。我无法开始计算列车和测试数据之间的距离。任何人都可以帮助我,让我知道如何为这些数据生成一个循环?

我会很感激。

+1

这个问题是目前的形式相当模糊,但你在阅读你的数据之后,看看'dist'?功能...它会为你计算你的欧几里得距离 – Chase 2012-04-19 02:00:51

+0

感谢您的帮助。我探索并了解了图书馆(领域)。实际上,我必须对给定的数据集执行KNN(监督分类),我遵循计算距离,排序,选择邻居,然后预测的方法。我有K值1,3,5,7,和15.如果我的问题是可以理解的,那么你能解释一下吗? – 2012-04-20 22:38:26

回答

6

对于欧几里德距离,我喜欢使用fields软件包中的rdist。在diststats包一个优点,就是它可以采取两个矩阵的输入:

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