什麼是K近鄰演算法?
使用K個最接近的數據預測結果
該部落格上撰寫的文章是出於教學目的而創建的。 另外,文章中的資訊可能不正確,請謹慎。
K-Nearest Neighbors,簡稱KNN,是一種透過尋找與新資料最接近的K條資料來決定結果的演算法。 在韓語中,它被稱為K最近鄰演算法。
跟隨你周圍的大多數人
假設我們已經有了蘋果和橘子的重量和顏色數據。 當有新的水果進來時,會在現有數據中找到最接近的水果。
附近有 5 種新水果
4 個蘋果
1 個橙子
預測結果:蘋果
這裡,如果K為5,則檢查附近的5條資料。 在分類問題中,您可以選擇類別數最多的類,在迴歸問題中,您可以使用接近值的平均值。
更接近搜尋而不是學習
KNN 很少需要事先創建複雜模型的過程。 訓練資料保持原樣,每次進行預測時都會計算到新資料的距離。
學習階段:保存資料。
預測步驟:計算所有數據和距離。
所以實作很簡單,但是資料越多,預測就越慢。 如果有 N 個資料和 D 個特徵,則簡單的實作將需要在一次預測期間計算大約 N 個距離。
K的值改變結果
如果 K 為 1,則僅信任最接近的資料。 即使很小的噪音也很容易改變結果。
如果 K 太大,局部特徵就會遺失,包括遠處的資料。 如果兩個類別存在相似的數字,可以選擇奇數來減少平局,但奇數並不總是正確的答案。
KNN 的核心是假設附近的資料具有相似的屬性。 因此,對於距離含義明確且資料量不太大的問題,先測試是一個很好的演算法。