一、概述
knn是通過測量不同特徵值之間的距離進行分類。它的思路是:如果乙個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別,其中k通常是不大於20的整數。knn演算法中,所選擇的鄰居都是已經正確分類的物件。該方法在定類決策上只依據最鄰近的乙個或者幾個樣本的類別來決定待分樣本所屬的類別。
二、演算法
如下圖的例子,在圖中一共有兩類,藍色和紅色兩類,綠色是待分類的樣本,當k=3,我們可以看出離綠色最近的藍色點有三個,紅色點有兩個,則綠色應該分到藍色那一類;當k=5時,離綠色點最近的藍色點有乙個,紅色點有兩個,則綠色應當分到紅色那一類。這就是knn的基本思想。
這裡,最主要的就是計算待測樣本和其他點之間的距離。我們一般使用歐氏距離或者曼哈頓距離:
knn的具體步驟如下:
1、計算測試資料和各訓練資料之間的距離;
2、根據距離進行排序;
3、選出其中距離最小的k個點;
4、確定k個點所在類別出現的頻率;
5、將出現頻率最高的類別作為**類別。
參考:
機器學習之十大機器學習演算法
邏輯回歸 機器學習實戰書籍和 分享 pca簡介 機器學習演算法篇 從為什麼梯度方向是函式變化率最快方向詳談梯度下降演算法 資源 有沒有必要把機器學習演算法自己實現一遍?推薦 用python實現 pattern recognition and machine learning 裡的演算法 推薦 斯坦福...
十大機器學習演算法之AdaBoost
adaboost是一種迭代演算法,核心思想是針對同乙個訓練集去訓練多個不同的分類器 弱分類器 訓練完畢之後,把所有這些弱分類器進行融合得到最終的分類器 強分類器 演算法本身是通過改變資料分布來實現的,首先根據每次訓練結束之後每個樣本是否分類正確然後賦予不同的權重,然後把新的資料集傳遞到下一層訓練下乙...
機器學習十大常用演算法
根據一些 feature 進行分類,每個節點提乙個問題,通過判斷,將資料分為兩類,再繼續提問。這些問題是根據已有資料學習出來的,再投入新資料的時候,就可以根據這棵樹上的問題,將資料劃分到合適的葉子上。在源資料中隨機選取資料,組成幾個子集源資料,這幾個子集得到幾個決策樹,將新資料投入到這 m 個樹中,...