k-Nearest Neighbors(KNN)算法—原理篇

前一陣子,在學習機器學習參考資料《Machine learning in action》,一本以python語言爲主。python比較簡單,寫算法比較靈活,對數組矩陣的計算形式調用較爲簡單。

第一個機器學習的例子,就是kNN,它是一個簡單的機器學習模型,容易理解而且效率高。原理和它的想法都很簡單:用距離來分類的方法,計算待分類樣例與已知所有分類樣例的距離,對結果進行排序,找出最小距離的前k個結果,對k個結果進行投票統計,得票最多的就是屬於那一類。

問題來了是什麼距離作爲衡量標準,我們知道距離有歐氏距離,馬氏距離還是歐氏距離?它採用的是歐氏距離。

舉個例子,它是怎麼做的,也行就明白爲什麼選擇歐氏距離。

書中用的例子:要對一個電影進行分類,看它是屬於哪個類別的。比如,已知下表:


我們想知道一個電影XX是屬於羅曼題材還是動作題材的,於是我們計算XX與上表中已知電影的各個距離,如下表:


加入k= 3 ,從上面的表格看到前3個距離最小的都是屬於Romance,即XX就是羅曼題材的電影。

原理部分已經完成。送上歐式距離的計算方法:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章