機器學習基礎算法——K鄰近算法

K鄰近算法(KNN)是機器學習的基礎算法之一,它的工作原理是:在一個樣本數據集合,也稱作訓練樣本集,並且樣本集中每個數據都存在標籤,即我們知道樣本集中每一個數據與所屬分類的對應關係。輸入沒有標籤的新數據後,將新數據的每個特徵與樣本中數據對應的特徵進行比較,然後算法提取樣本集中特徵最相似數據(最鄰近)的分類標籤。以對某電影所屬類型進行示例:

在電影分類中,以打鬥鏡頭和接吻鏡頭的數目,作為愛情片和動作片兩類電影的判別屬性(樣本特徵)。

樣本集:已經明確類型的電影,例如California Man中打鬥鏡頭數為3,接吻鏡頭數為104,因此認為其是愛情片。Kevin Longblade中打鬥鏡頭為101,接吻鏡頭為5,因此認為其是動作片。

新數據:待判定類型的影片。

利用K鄰近算法實例:

一.社交網站尋找合適約會對象

樣本數據:1000條樣本數據,其中主要特徵為:

  1. 每年獲得的飛行常客里程數

  2. 玩視頻遊戲所耗時間百分百

  3. 每週消費的冰淇淋公升數

機器學習基礎算法——K鄰近算法

x玩視頻遊戲所耗的事件,y每週消費的冰淇淋公升數

通過這三個特徵去找到自己心儀的約會對象,其中約會對象分為三種類型:

  1. 不喜歡的人

  2. 魅力一般的人

  3. 極具魅力的人

不同於上圖,下圖將x軸表示每年獲取的飛行常客里程數,Y軸玩視頻遊戲所耗時間百分的人

機器學習基礎算法——K鄰近算法

綠:不喜歡得人,黃:極具魅力得人,紫:魅力一般得人

二.手寫識別系統

在這裡為了方便起見,只識別0~9。並且需要識別的數字已經使用圖形軟件處理,處理成具有相同的色彩和大小:寬高都是32象數*32像素的黑白圖像。缺點:採用文本格式存儲圖像不能有效地利用內存空間,但是為了方便理解,我們還是將圖像轉為文本格式。

目錄trainingDigits中包含2000個例子,每個例子內容如圖所示,

機器學習基礎算法——K鄰近算法

數字9

機器學習基礎算法——K鄰近算法

數字6

機器學習基礎算法——K鄰近算法

數字0

每個數字大約有兩百個樣本;目錄Digits中包含大約900個測試類數據。使用trainingDigits中數據訓練分類器,使用testDigits的數據測試分類器。

機器學習基礎算法——K鄰近算法

測試結果和成功率展示

機器學習基礎算法——K鄰近算法

代碼,有需要的麼?


分享到:


相關文章: