2012-07-19 142 views
3

我有7個類需要分類,並且iam有10個特徵。在這種情況下是否需要使用k的最佳值,還是必須運行kN值在1到10之間(10左右)的KNN,並藉助算法本身確定最佳值?k最近鄰居算法k的值

+0

可能想看看[這篇文章](http://www.kyb.tuebingen.mpg.de/fileadmin/user_upload/files/publications/Final_version_maier_5681 [0] .pdf) – NominSim 2012-07-19 20:44:26

+0

哦不,不幸的是,我不是足夠的知識閱讀和理解這篇論文。請問有人可以幫我:( – user574183 2012-07-19 20:48:04

回答

8

除了the article我張貼的評論有this one以及這表明:

k的

選擇是非常重要的 - K值小意味着噪聲會對結果較高的影響力。一個很大的值使得它在計算上花費很大,並且有點擊敗了KNN背後的基本原理(即接近的點可能具有類似的密度或類)。選擇k的簡單方法設爲k = n ^(1/2)。

這將取決於你的個人情況,有時最好是貫穿每個可能的k值,併爲你自己決定。

+0

請問能否告訴我n是否代表班數? – user574183 2012-07-20 06:00:18

+0

您是根據功能進行分類的,所以n代表功能數。 – NominSim 2012-07-20 13:42:28

+0

如果我有93個功能比97是一個合適的選擇,或者我應該選擇93^1/2? – 2015-05-05 12:58:37

4

在K-NN算法要注意重要的是那的數量特徵的數量都沒有確定ķ的K-NN算法的價值發揮作用。 k-NN算法是用於基於距離度量對測試數據進行分類的自組織分類器,即,如果與其他類相比更接近測試樣本的第一類訓練樣本的數量更多,則測試樣本被分類爲第一類訓練樣本。例如:如果k = 5個樣本的值,則基於距離度量選擇5個最接近的訓練樣本,然後對每個類別的大多數樣本進行投票。因此,如果3個樣本屬於1類,2個屬於5類,則該測試樣本被歸類爲1類。因此,值k指示分類測試樣本所需的訓練樣本的數量。

編輯你的問題,的ķ值爲非參數和拇指的在選擇的ķ的值的一般規則是K = SQRT(N)/ 2,其中Ñ看臺您訓練數據集中的樣本數。我建議的另一個建議是嘗試保持k odd的值,以便在選擇一個類之間沒有聯繫,但這指的是訓練數據在類之間高度相關並使用簡單的分類算法(例如k- NN會導致較差的分類性能。