2014-04-01 57 views
-3

所以我想編碼最近鄰居算法。我的功能的輸入將是一組數據和樣本進行分類。我只是想了解算法的運作。你們可以告訴我,這個我試圖做的「僞代碼」是正確的嗎?K最近鄰居僞碼?

kNN (dataset, sample){ 

    1. Go through each item in my dataset, and calculate the "distance" from that data item to my specific sample. 
    2. Out of those samples I pick the "k" ones that are most close to my sample, maybe in a premade array of "k" items? 

} 

我感到困惑的部分是當我說「通過我的數據集中的每個項目」。我是否應該瀏覽數據集中的每個CLASS並查找最近鄰居?然後從那裏找到哪一個最接近我的樣本,然後告訴我這堂課?

第2部分問題(ISH),是使用這種算法,但沒有樣本。我將如何計算數據集的「準確性」?

我的確在尋找寬泛的單詞而不是具體的答案,但任何能夠幫助我理解的東西都是值得讚賞的。我在R.實施這一

感謝

+0

你究竟是什麼意思的「準確性」? 否則第一部分的想法似乎是正確的,相當蠻力,不高效,但正確 –

+0

老實說不知道,只是一個硬件問題我試圖解決這個問題並不清楚。感謝您在第一部分的回答。我是否正確地說我需要循環遍歷每個類,並找到每個類的k個最近鄰居,而不僅僅是整個數據集? – user3037172

回答

8

你的僞代碼應該改變這樣的:

 
kNN (dataset, sample){ 
    1. Go through each item in my dataset, and calculate the "distance" 
    from that data item to my specific sample. 
    2. Classify the sample as the majority class between K samples in 
    the dataset having minimum distance to the sample. 
} 

這pseduocode已經INT如下圖所示。

enter image description here

假設數據集包括兩個類A和B,分別顯示爲紅色和藍色,我們希望與K = 5申請KNN的來樣訂做,用綠色和紫色星星表示。
KNN計算每個測試樣本與所有樣本的距離,並找到五個與測試樣本距離最小的鄰居,並將多數類別指定給測試樣本。

精度:1 -

對於 「R」 實現(錯誤分類的測試樣品/試樣的數)可能顯示thisthis