knn分類演算法(k-nearest-neighbors classification)即k近鄰演算法:給定乙個訓練資料集,對新的輸入例項,在訓練資料集中找到與該例項最鄰近的k個例項, 這k個例項的多數屬於某個類,就把該輸入例項分類到這個類中。
核心思想:要確定測試樣本屬於哪一類,就尋找所有訓練樣本中與該測試樣本「距離」最近的前k個樣本,然後看這k個樣本大部分屬於哪一類,那麼就認為這個測試樣本也屬於哪一類。
具體步驟
1、計算測試物件與訓練集中所有物件的距離,可以是歐式距離、余弦距離等,比較常用的是較為簡單的歐式距離。
2、找出上步計算的距離中最近的k個物件。
3、找出k個物件**現頻率最高的物件,其所屬的類別就是該測試物件所屬的類別。
數學表示式
輸入訓練集
x:樣本的特徵向量。
y:樣本的類別。
t:乙個特徵空間,包含輸入的樣本。
輸出x所屬類別y
過程:(1)根據給定的距離度量,在訓練集t中找出與x最鄰近的k個點,包含這k個點的x的鄰域記作n(k)。
(2)在n(k)中根據分類決策規則(如多數表決)決定x的類別y,其公式如下:
( 說明:當括號等式成立時i為1,否則為0。)
在輸出過程中需要注意的三個重要點:k值選擇,距離度量,分類決策規則。
下面來解釋。
k一般低於訓練樣本數的平方根,它的設定使用交叉檢驗的方法.
(以k=1為基準)
k值設定過小會降低分類精度;若設定過大,且測試樣本屬於訓練集中包含資料較少的類,則會增加雜訊,降低分類效果。
常見距離:曼哈頓距離,歐式距離和閔可夫斯基距離。
通式:
p=1時是 曼哈頓距離(manhattan distance):
p=2時是 歐式距離(euclidean distance) :
p=∞時:
knn分類**多使用多數表決法。
多數表決法:即訓練集裡和**的樣本特徵最近的k個樣本,**為裡面有最多類別數的類別。
knn回歸多使用選擇平均法。
選擇平均法:即最近的k個樣本的樣本輸出的平均值作為回歸**值。
結束
感謝閱讀!
機器學習之KNN
knn主要應用於文字分類 聚類分析 分析 降維等 中心思想是採用測量不同特徵值之間的距離方法進行分類 演算法非常簡單,不過這是乙個監督演算法,訓練資料需要經過人工標記。演算法中心思想是 計算候選樣本到所有訓練樣本之間的距離,選取k個最近距離資料中出現次數最多的分類作為新樣本的類別。from nump...
機器學習之KNN
以下部落格主要由兩部分構成。一是理論講解,而是 實現 因為工程上使用knn的頻率不是很高,所以 不是目的,一些 中的技巧就顯得很重要了 首先knn是什麼?k nearest neighbors knn 以下的均來自 貪心科技 不是打廣告,純粹是尊重智財權。因為便於投票分類 怎麼選擇合適的k,一般會用...
機器學習之KNN
knn又叫做k鄰近,即k nearst neighbors,屬於分類任務 用待測樣本較近的幾個樣本來代表待測樣本 k值的選擇 k值較大容易欠擬合,k值較小容易過擬合,可以通過交叉驗證來選取乙個較好的值 距離的度量 一般選用歐幾里得距離 決策的規則 在分類時選用多數表決法或者加權的多數表決法 在做回歸...