1. 程式人生 > >K最近鄰分類演算法原理及例項分析

K最近鄰分類演算法原理及例項分析

目錄

  • 概述
  • 原理
  • 要點
  • 例項

1、概述

K最近鄰(k-Nearest Neighbor,KNN),指導思想是“近朱者赤,近墨者黑”,由你的鄰居來推斷出你的類別,KNN分類演算法是最簡單的機器學習演算法。

2、原理

從訓練集中找到和新資料最接近的k條記錄,然後根據多數類來決定新資料類別,本質上,KNN是使用距離來計算相似度。

演算法涉及3個主要因素:訓練資料集;距離或相似度的計算衡量;k的大小。

已知兩類“先驗”資料,分別是藍方塊和紅三角,他們分佈在一個二維空間中;

有一個未知類別的資料(綠點),需要判斷它是屬於“藍方塊”還是“紅三角”類;

考察離綠點最近的3個(或k個)資料點的類別,佔多數的類別即為綠點判定類別。

3、要點

  • 計算步驟

        算距離:給定測試物件,計算它與訓練集中的每個物件的距離;

        找鄰居:圈定距離最近的k個訓練物件,作為測試物件的近鄰;

        做分類:根據這k個近鄰歸屬的主要類別,來對測試物件分類。

  • 相似度的衡量

       距離越近應該意味著這兩個點屬於一個分類的可能性越大。

       距離不能代表一切,有些資料的相似度衡量並不適合用距離。

       相似度衡量方法:包括歐式距離、夾角餘弦等。

       簡單應用中,一般使用歐氏距離,但對於文字分類來說,使用餘弦(cosine)來計算相似度就比歐式(Euclidean)距離更合適。

  • 類別判定

       簡單投票法:少數服從多數,近鄰中哪個類別的點最多就分為該類。

       加權投票法:根據距離的遠近,對近鄰的投票進行加權,距離越近則權重越大(權重為距離平方的倒數)

4、例項

  • 使用knn演算法來實現對手寫數字的自動識別