天天看點

ML之監督學習算法之分類算法一 ———— k-近鄰算法(最鄰近算法)

  最近鄰規則分類(K-Nearest Neighbor)KNN算法

  由Cover 和Hart在1968年提出了最初的鄰近算法,

  這是一個分類(classification)算法

  輸入基于執行個體的學習(instance-based learning), 懶惰學習(lazy learning)

  在一個樣本資料集合, 也稱作訓練樣本集, 并且樣本集中每個資料都存在标簽, 即我們知道樣本集中每一資料與所屬分類的對應關系。輸入沒有标簽的新資料後, 将新資料的每個特征與樣本集中資料對應的特征進行比較, 然後算法提取樣本集中特征最相似資料( 最近鄰) 的分類标簽。 一般來說, 我們隻選擇樣本資料集中前k個最相似的資料, 這就是k-近鄰算法中k的出處, 通常k是不大于20的整數。 最後, 選擇k個最相似資料中出現次數最多的分類, 作為新資料的分類。

  1、歐式距離

  2、餘弦值(cos)

  3、相關度(correlation)

  4、曼哈頓距離(Manhatten distance)

四、優缺點

  k近鄰算法是分類資料最簡單最有效的算法,k近鄰算法是基于執行個體的學習,使用算法時必須有接近實際算計的訓練樣本資料。 k近鄰算法必須儲存全部資料集,如果訓練資料集過于龐大,必須使用大量的存儲空間。此外,由于必須對資料集中的每個資料計算距離值,實際使用時可能非常耗時;

  k近鄰算法的另一個缺陷是它無法給出任何資料的基礎結構資訊,是以我們無法知曉平均執行個體樣本和典型執行個體樣本具有什麼特征。我們将使用 機率測量方法 處理分類問題; 

上一篇: ML之回歸

繼續閱讀