2012-04-19 50 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