參考:
1.《統計學習方法》李航
2.3.
4.
演算法基本思想:物以類聚,人以群分
存在乙個樣本資料集合,也稱作訓練樣本集,並且樣本集中每個資料都存在標籤。輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資料對應的特徵進行比較,然後演算法提取樣本集中特徵最相似資料(最相鄰)的分類標籤。一般來說,我們只選擇樣本資料集中前k個最相似的資料,這就是k-近鄰演算法中k的出處,
通常k是不大於20的整數
。最後,選擇k個最相似資料中出現次數最多的分類,作為新資料的分類(可理解為:k個鄰居對未知標籤資料分類進行乙個投票選擇)。
演算法舉例:
根據電影中出現的接吻鏡頭和打鬥鏡頭的次數來判斷乙個未知電影是愛情片還是動作片。
首先,根據打鬥鏡頭和接吻鏡頭的次數(兩個特徵),將所有電影對映到座標軸上:
然後,計算未知電影與樣本集中其他電影的距離(這裡,可以採用歐式距離):
此時,我們根據距離對所有電影進行排序(其實,這裡的距離就類似於兩部電影的相似度)。假定k=3,那麼《he』s not really into dudes》、《beautiful woman》和《california man》分別被選定為未知電影的鄰居(最為相近的3部電影)。
最後,我們統計鄰居中的分類結果(鄰居進行投票選擇),並將最多的分類結果定為未知電影的分類結果。上述的3部電影均屬於愛情片,因此未知電影被判斷為一部愛情片。
演算法的優缺點及適用範圍:
優點:精度高、對異常值不敏感、無資料輸入假定;
缺點:計算複雜度高、空間複雜度高。(ps:上述例子僅為最為簡單二分類,所以是二維問題,一旦分類數目增加,相應的空間複雜度也會驟增;此外,對未知量進行分類,需要對其與所有訓練樣本的距離進行求解,對於大規模問題,計算複雜度高);
適應資料範圍:數值型和標稱型。
相關問題:
1.引數k的選擇:引數k選擇的太小或者太大,都會影響knn結果的精度,一般k<20。
2.距離的選擇:常用的兩種距離分別為歐氏距離和曼哈頓距離。
3.分類判斷決策:在鄰居中進行投票選擇無疑是最為簡單,且最為直觀的方法。但是,k個鄰居中可能包含很多中不同的分類,而且通常情況下越是接近的鄰居越更加可靠,所以我們也可以選擇帶權重的方法。
根據距離,為每乙個鄰居賦以不同的權值,距離越小的權值越大,距離越大的權值越小,然後再根據每一分類的加和做出分類判斷。
演算法流程:
加快檢索速度
kd樹:
機器學習 k 近鄰 kNN 演算法
一 基本原理 存在乙個樣本資料集合 也稱訓練樣本集 並且樣本集中每個資料都存在標籤。輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資料對應的特徵進行比較,然後演算法提取樣本集中特徵最相似資料 最近鄰 的分類標籤。我們一般只選擇樣本集中前k k通常是不大於20的整數 個最相似的資料,最後選擇k個...
機器學習 k近鄰演算法 kNN
knn演算法通過計算當前測試樣本與離它最近的k個點的距離,進行投票,得到它最有可能的分類結果。首先來看看機器學習演算法的基本流程 由此可見knn演算法的特點 1.k近鄰演算法是非常特殊的,可以認為是沒有模型的演算法。2.為了和其他演算法統一,可以認為訓練資料集就是模型本身。這也是scikit lea...
機器學習 k 近鄰演算法(KNN)
簡單地說,k 近鄰演算法採用測量不同特徵值之間的距離方法進行分類。優點 精度高 對異常值不敏感 無資料輸入假定。缺點 計算複雜度高 空間複雜度高。適用範圍 數值型和標稱型。對於該演算法更通俗的說法,拿到乙個資料a,計算其與資料集c中的資料的距離,通過使用特徵值進行求歐式距離。然後排序取出其前k相鄰的...