2013-02-20 30 views
2

我目前使用Matlab的k最近鄰分類器(knnclassify)來訓練和測試二進制屬性。如果沒有提供,k的默認值參數是1,並且可以選擇其他k值。我已經完成了在線和在stackoverflow的研究,但沒有任何相關的問題來解決我的問題,什麼價值的k將是最好的使用。是否有一個內置的函數可以告訴我,對於我的特定數據,還是隻是猜測並等待看看導出的準確度是多少?任何幫助將不勝感激。在Matlab中爲KNN選擇k

這裏是鏈接到MATLAB的knnclassify文檔:knnclassify

回答

5

你在這裏什麼是一個典型的模式選擇問題。你想要的是挑選k,它可以讓你的數據的整體誤差最小。較大的k值總結得更好,較小的值可能傾向於過度擬合。

因此,交叉驗證是一個很好的方法來選擇這個參數,我發現this article,這似乎是一個合理的方法。

+1

良好的文章,只是不幸的長時間迭代通過各種k值可能是耗時的。但就像你說的那樣是一個合理的方法。 – 2013-02-20 04:47:17

+1

還可以查看sillhouette圖http://en.wikipedia.org/wiki/Silhouette_(clustering) – Dan 2013-02-20 11:37:05