2012-04-16 95 views
2

我在matlab中應用了KNN算法對手寫數字進行分類。這些數字最初是8 * 8的矢量格式,並被拉伸形成矢量1 * 64。所以每次我將第一個數字與其餘所有數據集(這是相當大的數據集)進行比較,然後第二個數字集與剩下的集合等等等現在我的問題是,不是1鄰居是最佳選擇總是?由於我使用歐幾里德距離(我選擇了一個更接近的距離),爲什麼我應該選擇2或3個鄰居呢?鄰居數KNN算法

謝謝

+0

比方說,你有被誤寫成,看起來酷似1你現在檢查一個7。你得到錯誤的結果。現在,在5個最佳比賽中,有多少比7更多? – svinja 2012-04-16 14:13:28

+0

男士是否正常獲得90.21%的成功?在1593位數據集? – 2012-04-16 19:57:23

+0

@TestTest我不是圖像識別方面的專家,我通常將ML用於其他目的,但90.2%對我來說聽起來相當不錯。 – amit 2012-04-16 20:03:53

回答

1

你必須考慮噪音。假設你的一些分類實例可能被錯誤地分類,或者其中一個與其他例子非常接近 - 這是不同的,但實際上它只是一個「小故障」。在這些情況下 - 根據這種情況進行分類可能會導致錯誤。

從個人經驗來看,通常是對於k = 3/5/7來說取得了最好的結果,但它是依賴於實例的。

如果您想要獲得最佳性能 - 您應該使用cross validation top爲您的特定實例選擇最佳k

而且,通常只使用奇數作爲k的KNN,避免「畫」

+0

傢伙是否正常獲得90.21%的成功?在1593位數據集? – 2012-04-16 19:57:31