K-近鄰算法

在模式識別領域中 ， 最近鄰居法 （ KNN算法 ， 又譯K - 近鄰算法 ） 是一種用於分類和迴歸的無母數統計方法 。 在這兩種情況下 ， 輸入包含 （ Feature Space ） 中的k個最接近的訓練樣本 。 在k - NN分類中 ， 輸出是一個分類族群 。 一個對象的分類是由其鄰居的 “ 多數表決 ” 確定的 ， k個最近鄰居 （ k爲正整數 ， 通常較小 ） 中最常見的分類決定了賦予該對象的類別 。 若k = 1 ， 則該對象的類別直接由最近的一個節點賦予 。 在k - NN迴歸中 ， 輸出是該對象的屬性值 。 該值是其k個最近鄰居的值的平均值 。 最近鄰居法採用向量空間模型來分類 ， 概念爲相同類別的案例 ， 彼此的相似度高 ， 而可以藉由計算與已知類別案例之相似度 ， 來評估未知類別案例可能的分類 。 K - NN是一種 ， 或者是局部近似和將所有計算推遲到分類之後的 。 k - 近鄰算法是所有的機器學習算法中最簡單的之一 。 無論是分類還是迴歸 ， 衡量鄰居的權重都非常有用 ， 使較近鄰居的權重比較遠鄰居的權重大 。 例如 ， 一種常見的加權方案是給每個鄰居權重賦值爲1 / d ， 其中d是到鄰居的距離 。 鄰居都取自一組已經正確分類 （ 在迴歸的情況下 ， 指屬性值正確 ） 的對象 。 雖然沒要求明確的訓練步驟 ， 但這也可以當作是此算法的一個訓練樣本集 。 k - 近鄰算法的缺點是對數據的局部結構非常敏感 。 K - 平均算法也是流行的機器學習技術 ， 其名稱和k - 近鄰算法相近 ， 但兩者沒有關係 。 數據標準化可以大大提高該算法的準確性 。